Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.46.0-wmf.24 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Wikibooks:Bar 4 413 540759 539146 2026-04-26T00:57:35Z MediaWiki message delivery 18085 /* Request for comment (global AI policy) */ nowa sekcja 540759 wikitext text/x-wiki {{Skrót|'''[[WB:BAR]]''', '''[[WB:Bot policy]]'''}}{{/Nagłówek}} <!-- =================== DYSKUSJE ========================= --> <!-- ============= Prosimy pisać poniżej ================== --> == Projekt nowej strony głównej == Zajmuję się projektem, który od dawna spędza nam sen z powiek. Jak wszystko będę miał gotowe, będzie można redagować, wstawiać, etc. W ramach [[Wikipedysta:Benjamin_E._Schneider/projektyy|tej strony]] podejmuję się działań: * przepisania kodu SG na nowoczesnego HTML-a bez rozwalania na szablony * unowocześniania interfejsu SG * zadbania o przyjazność dla użytkownika. Jeżeli będziecie mieli jakieś sugestie, napiszcie tutaj lub poprawcie na własną rękę. [[Wikipedysta:Benjamin E. Schneider|Benjamin E. Schneider]] ([[Dyskusja wikipedysty:Benjamin E. Schneider|dyskusja]]) 16:26, 6 sty 2026 (CET) == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''' 20:44, 16 sty 2026 (CET) <!-- Wiadomość wysłana przez User:ZI Jony@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 --> == <span lang="en" dir="ltr">Annual review of the Universal Code of Conduct and Enforcement Guidelines</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 9 February 2026. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> </div> 22:01, 19 sty 2026 (CET) <!-- Wiadomość wysłana przez User:Keegan (WMF)@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Sensowny tytuł podręcznika (na podstawie "Moje pierwsze akwarium") == Hej, mam problem, który spędza mi sen z powiek: tytuł podręcznika "Moje pierwsze akwarium". Na pewno super pomysł na podręcznik w naszych Wikibooks, podoba mi się. Ale ... co znaczy ten tytuł? Dlaczego nie po prostu "Akwarium" albo "Akwarium domowe"? Czy "moje" oznacza, że będzie jeszcze "twoje, nasze, ich itd.? Czy pierwsze oznacza, że będą jeszcze kolejne? Czy ten tytuł robi miejsce na jeszcze inny podręcznik o tej samej treści? Mam wielka prośbę - czy można ten tytuł zmienić na "Akwarium"? Byłoby super. Jeżeli nie da się tego zrobić programatycznie, to całą pracę związaną z przeróbką tytułu mogę wziąć na siebie. Co o tym myślicie? [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 22:01, 24 sty 2026 (CET) :@[[Wikipedysta:EdytaT|EdytaT]] tak cały podręcznik i jego strony da się przynieść do nowej nazwy, aczkolwiek będzie trzeba przepatrzeć tekst, ponieważ tam nie da się zmienić automatycznie. Popieram Twoją propozycję, aby zmienić tytuł na „Akwarium”. Jeszcze dobrze jakby się wypowiedział @[[Wikipedysta:Persino|Persino]] :) [[Wikipedysta:Igor123121|Igor123121]] ([[Dyskusja wikipedysty:Igor123121|dyskusja]]) 11:09, 25 sty 2026 (CET) : {{Ping|EdytaT|Igor123121}} Macie rację! [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 11:15, 25 sty 2026 (CET) :Ja rozumiem, że "pierwsze" znaczy - "nie było wcześniej" oraz że "dla początkujących", a "moje" znaczy, że będzie wykonywał je czytelnik. Mimo to, nie widzę przeciwwskazań do zmiany nazwy. [[Wikipedysta:Wargo|Wargo]] ([[Dyskusja wikipedysty:Wargo|dyskusja]]) 12:15, 25 sty 2026 (CET) ::Hej, nie musisz mi tego tłumaczyć. Oczywiście, rozumiem "co autor miał na myśli" wybierając ten tytuł. Ale niestety brzmi on nieciekawie, żeby nie powiedzieć - infantylnie. Trochę tak, jak "Moja pierwsza czytanka", albo "Moja pierwsza malowanka". :):):) Dziękuje za twój głos i pozdrawiam serdecznie. [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 13:59, 25 sty 2026 (CET) :::@[[Wikipedysta:EdytaT|EdytaT]] dokonałem przenosin :) Pozdrawiam! [[Wikipedysta:Igor123121|Igor123121]] ([[Dyskusja wikipedysty:Igor123121|dyskusja]]) 14:42, 25 sty 2026 (CET) ::::{{Ping|Igor123121|EdytaT}} Ukończyłem przenosiny użytkownika: {{Ping|Igor123121}}, książki: [[Moje pierwsze akwarium]], na: [[Akwarium]], jako dalsze potrzebne operacje, sprawdzając również linkujące... [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 15:31, 25 sty 2026 (CET) :::::Dziękuję! [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 18:27, 25 sty 2026 (CET) *Samo przeniesienie popieram ale po co kasować przekierowania? A co jeśli ktoś linkował do nas? [[Wikipedysta:Marek Mazurkiewicz|Marek Mazurkiewicz]] ([[Dyskusja wikipedysty:Marek Mazurkiewicz|dyskusja]]) 06:57, 26 sty 2026 (CET) == Nazewnictwo artykułów (na podst. "Język pruski dla początkujących") == Hej, jest jeszcze jeden tytuł, który nie pasuje do innych z dziedziny języków: "Język pruski dla początkujących". Prawie wszystkie inne tytuły to po prostu "Hiszpański", "Japoński", "Szwedzki" itd. Czy można zmienić nazwę na "Pruski"? A informacja, że chodzi o początkujących wynika per se z tytułów rozdziałów. Tak też nakazują nasze Wikibookowe reguły, cyt. fragment z "Pomoc" - "Nazewnictwo"<br> ;''Przykłady poprawnych tytułów:<br>'' ''Angielski<br>'' ''Mikrobiologia<br>'' ;''Przykłady niepoprawnych tytułów:<br>'' ''Język Angielski od Podstaw<br>'' ''Historia Polski od Mieszka I do Lecha Wałęsy<br>'' ''Mikrobiologia:Wstęp do nauki o mikroorganizmach<br>'' ''Nie należy stosować w nazwach podręczników własnych określeń, specyficznych tytułów, np. "Mój przewodnik po Beskidzie Wyspowym" albo "Trudna sztuka chirurgii". Takie podtytuły mogą się ewentualnie znaleźć na stronie tytułowej lub w spisie treści.<br>'' Jeżeli nie da się tego zrobić programatycznie, to całą pracę związaną z przeróbką tytułu mogę wziąć na siebie. Co o tym myślicie? [[Wikipedysta:EdytaT|EdytaT]] ([[Dyskusja wikipedysty:EdytaT|dyskusja]]) 22:20, 26 sty 2026 (CET) :Już przeniosłem książkę: [[Język pruski dla początkujących]], pod adres: [[Pruski]], sprawdzając jednocześnie linkujące, ale na szczęście ich nie było. [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 23:10, 26 sty 2026 (CET) ::Linkujace w wikimediach to nie wszystko. Mógłbyś zostawiać przekierowania? [[Wikipedysta:Marek Mazurkiewicz|Marek Mazurkiewicz]] ([[Dyskusja wikipedysty:Marek Mazurkiewicz|dyskusja]]) 07:49, 28 sty 2026 (CET) : Dziękuję! {{Brak podpisu|EdytaT}} == Tłumaczenie książek przez AI == Co o tym myślicie? Mam coś na kształt książki na temat języka Scheme: * https://lips.js.org/docs/category/introduction-to-scheme Myślałem, aby przetłumaczyć na język polski. Treść jest na licencji CC-BY-SA. Na stronie [[Lisp]] jest bardzo mało treści. Mój tekst jest nawet bardziej kompletny niż [[:en:Scheme Programming]]. Nie wiem, czy znajdę czas, aby przetłumaczyć ręcznie. [[Wikipedysta:Jcubic|Jcubic]] ([[Dyskusja wikipedysty:Jcubic|dyskusja]]) 22:15, 17 mar 2026 (CET) * Nawet dobry sposób, można w ten właśnie sposób przetłumaczyć tę pozycję... [[Wikipedysta:Persino|Persino]] ([[Dyskusja wikipedysty:Persino|dyskusja]]) 22:18, 17 mar 2026 (CET) == <span lang="en" dir="ltr">Upcoming deployment of CampaignEvents extension to Wikibooks</span> == <div lang="en" dir="ltr"> <section begin="message"/> Hello everyone, We are writing to inform you that the [[mw:Help:Extension:CampaignEvents|CampaignEvents extension]] will be deployed to all Wikibooks projects during the week of '''23 March 2026'''. This follows last year’s broader rollout across Wikimedia projects. We realized that Wikibooks was not included at the time, and we’re now addressing that to ensure consistency across all communities. The CampaignEvents extension provides tools to support event and campaign organization on-wiki, including features like on-wiki event registration and collaboration lists(global event list). We welcome any questions, feedback, or concerns you may have. We are also happy to support anyone interested in trying out the tools. ''Apologies if this message is not in your preferred language. If you’re able to help translate it for your community, please feel free to do so.'' <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|dyskusja]]) 19:22, 19 mar 2026 (CET)</bdi> <!-- Wiadomość wysłana przez User:Udehb-WMF@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=User:Udehb-WMF/sandbox/MM_target&oldid=30284073 --> == Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) == Hello everyone, This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>). '''The Change:'''<br /> Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]]. We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''. '''What You Need To Do:'''<br /> To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search. '''Deadline:'''<br /> We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles. Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Wikipedysta:MediaWiki message delivery|MediaWiki message delivery]] ([[Dyskusja wikipedysty:MediaWiki message delivery|dyskusja]]) 19:11, 3 kwi 2026 (CEST) <!-- Wiadomość wysłana przez User:ZI Jony@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Wikipedysta:MediaWiki message delivery|MediaWiki message delivery]] ([[Dyskusja wikipedysty:MediaWiki message delivery|dyskusja]]) 02:57, 26 kwi 2026 (CEST) </bdi> <!-- Wiadomość wysłana przez User:Codename Noreste@metawiki przy użyciu listy na https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> 5ve6zemm6nlj50p4sp3pr4gdu4bbjvo Moduł:Pudełko/Pomocne 828 56499 540761 540569 2026-04-26T05:58:42Z Persino 2851 540761 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local tab_nazwa={ ["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw", ["dyskusja"]="Nazwa przestrzeni nazw", }; local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); if(nazwa_przestrzeni_nazw=="")then local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local tab_nazwa={ ["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ", ["dyskusja"]="PRZESTRZEŃDYSKUSJI", }; nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else if(typ=="dyskusja")then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; return nazwa_przestrzeni_nazw; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(typ))then typ,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusja) return strona; end); return typ,liczba_numer_jednostki,ile; end; return typ,liczba_numer_jednostki,0; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local typ,liczba_numer_jednostki,ile_dyskusja=p.Typ_jednostki_uzyskany_z_frame(frame,i); if(ile_dyskusja>0)then return true;end; local pf=frame.getParent and frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if(czy_dyskusja)then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw) if( (kod_liczbowy_przestrzeni_nazw==2) or( (kod_liczbowy_przestrzeni_nazw==0) and( typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)) or( (nazwa_przestrzeni_nazw) and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$")) or nil ) ) ) )then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona) return strona.." dyskusji"; end); return typ_jednostki; elseif(kod_liczbowy_przestrzeni_nazw==1)then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji) return strona; end); return typ_jednostki; end; return typ_jednostki; end; if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return TempFunc(typ,nil); end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,nil,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw,1,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(norm_przed_lub_dyskusji=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(norm_przed_lub_dyskusji=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then local function TempFunc() return ((not i)or(i==0)); end; if((not co_ma_liczyc)or(co_ma_liczyc==0))then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=(czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local czy_i_0=TempFunc(); return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=( frame.args["nazwa jednostki "..liczba_numer_jednostki] or pf.args["nazwa jednostki "..liczba_numer_jednostki] ) or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry); end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if((not typ)or(typ=="przedmiotowa"))then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; enw7bcg19vl07wqswqn9e9ggcy1br03 540762 540761 2026-04-26T06:11:37Z Persino 2851 540762 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local tab_nazwa={ ["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw", ["dyskusja"]="Nazwa przestrzeni nazw", }; local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); if(nazwa_przestrzeni_nazw=="")then local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local tab_nazwa={ ["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ", ["dyskusja"]="PRZESTRZEŃDYSKUSJI", }; nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else if(typ=="dyskusja")then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; return nazwa_przestrzeni_nazw; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local typ,liczba_numer_jednostki,ile_dyskusja=p.Typ_jednostki_uzyskany_z_frame(frame,i); local pf=frame.getParent and frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if(czy_dyskusja)then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw) if( (kod_liczbowy_przestrzeni_nazw==2) or( (kod_liczbowy_przestrzeni_nazw==0) and( typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)) or( (nazwa_przestrzeni_nazw) and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$")) or nil ) ) ) )then if(not mw.ustring.match(typ_jednostki,"^(%S+)(%s+)(dyskusji)"))then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona) return strona.." dyskusji"; end); end; return typ_jednostki; elseif(kod_liczbowy_przestrzeni_nazw==1)then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji) return strona; end); return typ_jednostki; end; return typ_jednostki; end; if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return TempFunc(typ,nil); end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,nil,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw,1,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(norm_przed_lub_dyskusji=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(norm_przed_lub_dyskusji=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then local function TempFunc() return ((not i)or(i==0)); end; if((not co_ma_liczyc)or(co_ma_liczyc==0))then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=(czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local czy_i_0=TempFunc(); return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=( frame.args["nazwa jednostki "..liczba_numer_jednostki] or pf.args["nazwa jednostki "..liczba_numer_jednostki] ) or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry); end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if((not typ)or(typ=="przedmiotowa"))then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; nauw2nld7qyt45bma07vafgwuqg3htm 540764 540762 2026-04-26T06:39:38Z Persino 2851 540764 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local tab_nazwa={ ["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw", ["dyskusja"]="Nazwa przestrzeni nazw", }; local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); if(nazwa_przestrzeni_nazw=="")then local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local tab_nazwa={ ["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ", ["dyskusja"]="PRZESTRZEŃDYSKUSJI", }; nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else if(typ=="dyskusja")then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; return nazwa_przestrzeni_nazw; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local typ,liczba_numer_jednostki,ile_dyskusja=p.Typ_jednostki_uzyskany_z_frame(frame,i); local pf=frame.getParent and frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); if(typ)then local typ,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusji)return strona;end); local nazwa_przestrzeni_nazw=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true); if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if((czy_dyskusja)or(ile>0))then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; return nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw) if( (kod_liczbowy_przestrzeni_nazw==2) or( (kod_liczbowy_przestrzeni_nazw==0) and( typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)) or( (nazwa_przestrzeni_nazw) and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$")) or nil ) ) ) )then if(not mw.ustring.match(typ_jednostki,"^(%S+)(%s+)(dyskusji)"))then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona) return strona.." dyskusji"; end); end; return typ_jednostki; elseif(kod_liczbowy_przestrzeni_nazw==1)then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji) return strona; end); return typ_jednostki; end; return typ_jednostki; end; if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return TempFunc(typ,nil); end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,nil,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw,1,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(norm_przed_lub_dyskusji=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(norm_przed_lub_dyskusji=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then local function TempFunc() return ((not i)or(i==0)); end; if((not co_ma_liczyc)or(co_ma_liczyc==0))then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=(czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local czy_i_0=TempFunc(); return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=( frame.args["nazwa jednostki "..liczba_numer_jednostki] or pf.args["nazwa jednostki "..liczba_numer_jednostki] ) or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry); end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if((not typ)or(typ=="przedmiotowa"))then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; eeibkym680uivkf4jsh4y6kbscu0l2g 540766 540764 2026-04-26T06:54:28Z Persino 2851 540766 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local tab_nazwa={ ["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw", ["dyskusja"]="Nazwa przestrzeni nazw", }; local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); if(nazwa_przestrzeni_nazw=="")then local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local tab_nazwa={ ["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ", ["dyskusja"]="PRZESTRZEŃDYSKUSJI", }; nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else if(typ=="dyskusja")then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; return nazwa_przestrzeni_nazw; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local typ,liczba_numer_jednostki,ile_dyskusja=p.Typ_jednostki_uzyskany_z_frame(frame,i); local pf=frame.getParent and frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); if(typ)then local typ,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusji)return strona;end); local nazwa_przestrzeni_nazw=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true); if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if((czy_dyskusja)or(ile>0))then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; return nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw) if( (kod_liczbowy_przestrzeni_nazw==2) or( (kod_liczbowy_przestrzeni_nazw==0) and( typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)) or( (nazwa_przestrzeni_nazw) and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$")) or nil ) ) ) )then if(not mw.ustring.match(typ_jednostki,"^(%S+)(%s+)(dyskusji)"))then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona) return strona.." dyskusji"; end); end; return typ_jednostki; elseif(kod_liczbowy_przestrzeni_nazw==1)then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji) return strona; end); return typ_jednostki; end; return typ_jednostki; end; if((not analiza)and(typ))then if(typ~="")then local typ_temp,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusji)return strona;end); uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ_temp,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return TempFunc(typ,nil); end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,nil,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw,1,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(norm_przed_lub_dyskusji=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(norm_przed_lub_dyskusji=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then local function TempFunc() return ((not i)or(i==0)); end; if((not co_ma_liczyc)or(co_ma_liczyc==0))then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=(czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local czy_i_0=TempFunc(); return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=( frame.args["nazwa jednostki "..liczba_numer_jednostki] or pf.args["nazwa jednostki "..liczba_numer_jednostki] ) or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry); end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if((not typ)or(typ=="przedmiotowa"))then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; 6bkoy1p41ljy34nqcjdr8576e42oixb 540767 540766 2026-04-26T07:00:56Z Persino 2851 540767 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local tab_nazwa={ ["przedmiotowa"]="Nazwa przedmiotowej przestrzeni nazw", ["dyskusja"]="Nazwa przestrzeni nazw", }; local nazwa_przestrzeni_nazw=pudelko_modul[tab_nazwa[typ]](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); if(nazwa_przestrzeni_nazw=="")then local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local tab_nazwa={ ["przedmiotowa"]="PRZEDMIOTOWAPRZESTRZEŃ", ["dyskusja"]="PRZESTRZEŃDYSKUSJI", }; nazwa_przestrzeni_nazw=nazwy_modul[tab_nazwa[typ]]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else if(typ=="dyskusja")then local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; return nazwa_przestrzeni_nazw; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local typ,liczba_numer_jednostki,ile_dyskusja=p.Typ_jednostki_uzyskany_z_frame(frame,i); local pf=frame.getParent and frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); if(typ)then local typ,ile=mw.ustring.gsub(typ,"^(%S+)(%s+)(dyskusji)",function(strona,spacja,dyskusji)return strona;end); local nazwa_przestrzeni_nazw=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true); if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if((czy_dyskusja)or(ile>0))then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; return nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); local function TempFunc(typ_jednostki,nazwa_przestrzeni_nazw) if( (kod_liczbowy_przestrzeni_nazw==2) or( (kod_liczbowy_przestrzeni_nazw==0) and( typ and (p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i)) or( (nazwa_przestrzeni_nazw) and (mw.ustring.match(nazwa_przestrzeni_nazw,"^Talk$") or mw.ustring.match(nazwa_przestrzeni_nazw," talk$")) or nil ) ) ) )then if(not mw.ustring.match(typ_jednostki,"^(%S+)(%s+)(dyskusji)"))then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)",function(strona) return strona.." dyskusji"; end); end; return typ_jednostki; elseif(kod_liczbowy_przestrzeni_nazw==1)then typ_jednostki,ile=mw.ustring.gsub(typ_jednostki,"^(%S+)(%s+)(dyskusji)",function(strona,spacje,dyskusji) return strona; end); return typ_jednostki; end; return typ_jednostki; end; if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return TempFunc(typ,nil); end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,nil,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw,1,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(norm_przed_lub_dyskusji=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(norm_przed_lub_dyskusji,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(norm_przed_lub_dyskusji=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(norm_przed_lub_dyskusji~="")and norm_przed_lub_dyskusji..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then typ_jednostki=TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return TempFunc(typ_jednostki,nazwa_przestrzeni_nazw); end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki,czy_uwzglednic_alternatywna_nazwe,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw_i_nazwy_jednostki==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then local function TempFunc() return ((not i)or(i==0)); end; if((not co_ma_liczyc)or(co_ma_liczyc==0))then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=(czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local czy_i_0=TempFunc(); local nazwa_przestrzeni_nazw=(czy_i_0) and pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local czy_i_0=TempFunc(); return (czy_i_0)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,czy_uwzglednic_alternatywna_nazwe,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=( frame.args["nazwa jednostki "..liczba_numer_jednostki] or pf.args["nazwa jednostki "..liczba_numer_jednostki] ) or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka=="przedmiotowa")then tab_parametry["przedmiotowa"]="tak";end; nazwa_przestrzeni_nazw=nazwy_modul.NpDane(tab_parametry); end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if((not typ)or(typ=="przedmiotowa"))then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; 9sftzbc7bpqhoclygt1ta3temujfsav Szablon:Strona główna/styles.css 10 56818 540754 538702 2026-04-25T20:52:19Z Persino 2851 540754 sanitized-css text/css /* -------------------------------------------------------------------------------------------------------------------------------------------------------- */ /* Dokument został stworzony w oparciu o pracę użytkownika: [[User:Persino]] i [[User:Nux]] (częśc pracy tego użytkownika została przeniesiona ze strony: "https://pl.wikibooks.org/w/index.php?title=Szablon:Menu_listy_pozycji_kategorii/styles.css&oldid=446499" na stronę "Szablon:Strona_główna/styles.css") */ /* -------------------------------------------------------------------------------------------------------------------------------------------------------- */ .mainpage{ text-align:center; width:100%; background-color:white; background-image: none; box-sizing:border-box; background-image: url(//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/330px-Wikibooksfirehazard2.svg.png); } .maintext{ text-align:justify; width:73.25rem; font-size:0.83rem; line-height:1.25em; background-color:white; display:inline-block; padding:0.25rem; border:1px solid #ccc; border-radius:0.4375rem; box-sizing:border-box; } .maintext h2{ font-size:1em !important; } /* main */ @media screen { .strona_start.niekolumnowy.mobilne > .strona .maintext { width: 100% !important; max-width: 73.25rem; box-sizing:border-box; } .strona_start.niekolumnowy.mobilne > .strona, .strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{ min-width: auto !important; overflow-x: visible !important; overflow-y: visible !important; } } /* mobile */ @media all and (max-width:745px), all and (max-device-width:745px), all and (max-device-height:745px) { .strona_start.niekolumnowy.mobilne > .strona .maintext > div > div.pudełko_projektu{ margin-right:auto !important; margin-left:auto !important; } .strona_start.niekolumnowy.mobilne > .strona .maintext{ text-align:left; } .strona_start.niekolumnowy.mobilne > .strona .main-siostrzane > div:first-child{ padding-left:0; margin-bottom:0.3125rem; } .strona_start.niekolumnowy.mobilne > .strona .mainpage { background-image: none; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii{ flex-wrap:wrap; gap:4px; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu{ margin-left:0 !important; margin-right:0 !important; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-treść, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-wprowadzenie, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-dodatkowe{ padding:0 !important; overflow:visible !important; } .strona_start.niekolumnowy.mobilne > .strona .main-dodatkowe-opis{ text-align:left !important; } } @media all and (min-width:560px) and (max-width:745px), all and (min-width:560px) and (max-device-height:745px){ .strona_start.niekolumnowy.mobilne > .strona .pudełko_projektu .br-pudełka-projektu{ display:none; } .strona_start.niekolumnowy.mobilne > .strona .pudełko_projektu .zawartość > center{ white-space:normal !important; } } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu{ width:calc( (100% - 16px)/5); flex-shrink:0; margin-left:2px; margin-right:2px; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu:nth-of-type(1){ margin-left:0; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu:nth-of-type(5){ margin-right:0; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu th, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu td a{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } .strona_start.niekolumnowy.mobilne > .strona > .ciało_kontener{ overflow:visible !important; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-wprowadzenie, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-dodatkowe{ padding-right:0.125rem; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-treść/*.mw-overflow-y.mw-scrollbar-overflow-y*/{ padding-right:0.25rem; } .strona-główna-polecane_książki.mw-scrollbar-overflow-y, .strona-główna-pliki_pdf.mw-scrollbar-overflow-y, .strona-główna-wikibooks-dla-szkół.mw-scrollbar-overflow-y{ padding-right:0.3125rem; } .strona-główna-polecane_książki.mw-scrollbar-overflow-x, .strona-główna-pliki_pdf.mw-scrollbar-overflow-x, .strona-główna-wikibooks-dla-szkół.mw-scrollbar-overflow-x{ padding-bottom:0.3125rem; } .main-siostrzane-lista figure[typeof~="mw:File"]{ display:unset; } .main-siostrzane > :nth-child(1){ text-align:left; margin-bottom:0.75rem; padding-left:4.375rem; height:auto; width:100%; box-sizing:border-box; } .main-siostrzane > :nth-child(2){ word-wrap:break-word; hyphens:auto; height:auto; width:100%; box-sizing:border-box; } .main-siostrzane > :nth-child(2).mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.25rem; } .main-siostrzane > :nth-child(2) .elastyczny{ overflow:visible !important; } .main-siostrzane > :nth-child(2){ overflow:auto; } .main-siostrzane > :nth-child(3){ margin:0px; border:solid 1px #ffad80; background:#fff7cb; padding:0.5em; font-size: 95%; text-align: center; width:100%; height:100%; box-sizing:border-box; } .main-siostrzane > div > .main-siostrzane-lista > div > div{ width:100%; height:100%; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(1){ text-align:center; height:auto; padding-bottom:0.1875rem; padding-top:0.1875rem; box-sizing:border-box; flex: 1 1 auto; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2){ text-align:center; background-color:#CAD2ff; height:100%; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2) > div > div:nth-child(1){ height:100%; flex: 1 1 auto; white-space:nowrap; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2) > div > div:nth-child(2){ height:100%; padding:0.3125rem 0.125rem; flex: 1 1 auto; white-space:nowrap; } /*{{Kategorie | Strona główna/Style | Szablony - arkusze stylów }}*/ iy7xhja5dpa7m7x787j6bnygpoext1o 540755 540754 2026-04-25T21:09:57Z Persino 2851 540755 sanitized-css text/css /* -------------------------------------------------------------------------------------------------------------------------------------------------------- */ /* Dokument został stworzony w oparciu o pracę użytkownika: [[User:Persino]] i [[User:Nux]] (częśc pracy tego użytkownika została przeniesiona ze strony: "https://pl.wikibooks.org/w/index.php?title=Szablon:Menu_listy_pozycji_kategorii/styles.css&oldid=446499" na stronę "Szablon:Strona_główna/styles.css") */ /* -------------------------------------------------------------------------------------------------------------------------------------------------------- */ .mainpage{ text-align:center; width:100%; background-color:white; background-image: none; box-sizing:border-box; background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Wikibook_rei-arturdeepaqua.svg/250px-Wikibook_rei-arturdeepaqua.svg.png); } .maintext{ text-align:justify; width:73.25rem; font-size:0.83rem; line-height:1.25em; background-color:white; display:inline-block; padding:0.25rem; border:1px solid #ccc; border-radius:0.4375rem; box-sizing:border-box; } .maintext h2{ font-size:1em !important; } /* main */ @media screen { .strona_start.niekolumnowy.mobilne > .strona .maintext { width: 100% !important; max-width: 73.25rem; box-sizing:border-box; } .strona_start.niekolumnowy.mobilne > .strona, .strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{ min-width: auto !important; overflow-x: visible !important; overflow-y: visible !important; } } /* mobile */ @media all and (max-width:745px), all and (max-device-width:745px), all and (max-device-height:745px) { .strona_start.niekolumnowy.mobilne > .strona .maintext > div > div.pudełko_projektu{ margin-right:auto !important; margin-left:auto !important; } .strona_start.niekolumnowy.mobilne > .strona .maintext{ text-align:left; } .strona_start.niekolumnowy.mobilne > .strona .main-siostrzane > div:first-child{ padding-left:0; margin-bottom:0.3125rem; } .strona_start.niekolumnowy.mobilne > .strona .mainpage { background-image: none; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii{ flex-wrap:wrap; gap:4px; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu{ margin-left:0 !important; margin-right:0 !important; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-treść, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-wprowadzenie, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-dodatkowe{ padding:0 !important; overflow:visible !important; } .strona_start.niekolumnowy.mobilne > .strona .main-dodatkowe-opis{ text-align:left !important; } } @media all and (min-width:560px) and (max-width:745px), all and (min-width:560px) and (max-device-height:745px){ .strona_start.niekolumnowy.mobilne > .strona .pudełko_projektu .br-pudełka-projektu{ display:none; } .strona_start.niekolumnowy.mobilne > .strona .pudełko_projektu .zawartość > center{ white-space:normal !important; } } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu{ width:calc( (100% - 16px)/5); flex-shrink:0; margin-left:2px; margin-right:2px; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu:nth-of-type(1){ margin-left:0; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > table.tabela_nawigacyjna.tablemenu:nth-of-type(5){ margin-right:0; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu th, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-kategorii > .tabela_nawigacyjna.tablemenu td a{ white-space:nowrap; text-overflow:ellipsis; overflow:hidden; } .strona_start.niekolumnowy.mobilne > .strona > .ciało_kontener{ overflow:visible !important; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-wprowadzenie, .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-dodatkowe{ padding-right:0.125rem; } .strona_start.niekolumnowy.mobilne > .strona .menu-listy-elastyczny-treść/*.mw-overflow-y.mw-scrollbar-overflow-y*/{ padding-right:0.25rem; } .strona-główna-polecane_książki.mw-scrollbar-overflow-y, .strona-główna-pliki_pdf.mw-scrollbar-overflow-y, .strona-główna-wikibooks-dla-szkół.mw-scrollbar-overflow-y{ padding-right:0.3125rem; } .strona-główna-polecane_książki.mw-scrollbar-overflow-x, .strona-główna-pliki_pdf.mw-scrollbar-overflow-x, .strona-główna-wikibooks-dla-szkół.mw-scrollbar-overflow-x{ padding-bottom:0.3125rem; } .main-siostrzane-lista figure[typeof~="mw:File"]{ display:unset; } .main-siostrzane > :nth-child(1){ text-align:left; margin-bottom:0.75rem; padding-left:4.375rem; height:auto; width:100%; box-sizing:border-box; } .main-siostrzane > :nth-child(2){ word-wrap:break-word; hyphens:auto; height:auto; width:100%; box-sizing:border-box; } .main-siostrzane > :nth-child(2).mw-overflow-x.mw-scrollbar-overflow-x{ padding-bottom:0.25rem; } .main-siostrzane > :nth-child(2) .elastyczny{ overflow:visible !important; } .main-siostrzane > :nth-child(2){ overflow:auto; } .main-siostrzane > :nth-child(3){ margin:0px; border:solid 1px #ffad80; background:#fff7cb; padding:0.5em; font-size: 95%; text-align: center; width:100%; height:100%; box-sizing:border-box; } .main-siostrzane > div > .main-siostrzane-lista > div > div{ width:100%; height:100%; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(1){ text-align:center; height:auto; padding-bottom:0.1875rem; padding-top:0.1875rem; box-sizing:border-box; flex: 1 1 auto; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2){ text-align:center; background-color:#CAD2ff; height:100%; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2) > div > div:nth-child(1){ height:100%; flex: 1 1 auto; white-space:nowrap; } .main-siostrzane > div > .main-siostrzane-lista > div > div > :nth-child(2) > div > div:nth-child(2){ height:100%; padding:0.3125rem 0.125rem; flex: 1 1 auto; white-space:nowrap; } /*{{Kategorie | Strona główna/Style | Szablony - arkusze stylów }}*/ s2jgq33uh66gvo1khuytzxta7kwhp2d Wikijunior:Polska 104 57530 540795 539223 2026-04-26T10:00:52Z Igor123121 34732 540795 wikitext text/x-wiki {{Status|-100%|Geografia|junior=Świat ludzi}} {{Plik|plik=Flag of Poland (with coat of arms).svg|ramka=bezramki|pozycja=prawo}} {{Plik|plik=Wrocław - Jahrhunderthalle1.jpg|ramka=bezramki|pozycja=prawo}} = Polska = Podręcznik dla dzieci na temat Polski. [[Wikijunior:Polska/Spis treści|Spis treści]] [[Wikijunior:Polska/Wstęp|Wstęp]] 4arhseog9m16f1rltho8arn2yynf5j7 Wikipedysta:Persino/vector-2022.css 2 58973 540756 539999 2026-04-25T21:24:37Z Persino 2851 540756 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; word-break: break-word; } body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table, body.action-submit #wikiPreview table, body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table *, body.action-submit #wikiPreview table *{ word-wrap: normal; word-break: normal; } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:cornflowerblue; background-attachment:fixed; margin-left:0; margin-right:0; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } @media all and (max-width:476px){ .mw-page-container{ min-height:calc( 100% - 6.75rem - 1px - 4px - 8px ); width:100% !important; } } @media all and (max-width:999px){ .mw-page-container{ width:100% !important; } } .mw-page-container > .mw-page-container-inner{ background-color:white; padding-left: 5px; padding-right: 5px; } .mw-page-container > .mw-page-container-inner{ max-width:100vw; margin:auto; margin-top:0; } .vector-main-menu-container, .mw-content-container{ margin-top:2px; } @media all and (min-width:999px){ .mw-page-container > .mw-page-container-inner{ padding-left:5px; padding-right:5px; max-width:100%; } .mw-page-container > .mw-page-container-inner{ width:auto; } .vector-feature-limited-width-clientpref-0 #content{ width:100%; } .mw-page-container .mw-content-container{ display:flex; flex-direction:column; } .mw-page-container .mw-content-container > #content{ height:auto; order:1; } .mw-page-container .mw-content-container > #mw-data-after-content{ order:2; } html.client-nojs #bodyContent{ width:auto !important; } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ .mw-footer-container{ display: flex; flex-direction: row; align-items: stretch; justify-content: center; } } body, .mw-page-container, .mw-page-container-inner, .mw-content-container, #content, #bodyContent, #mw-content-text, .mw-parser-output, #footer, .vector-sitenotice-container{ max-width:-moz-available !important; max-width:-webkit-fill-available !important; max-width:stretch !important; } body.ns-10:not(.ns-submit) .mw-body-header, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .mw-body-header, body.vector-page-js.ns-8 .mw-body-header, body.vector-page-css.ns-2 .mw-body-header, body.vector-page-js.ns-2 .mw-body-header, body.ns-10:not(.ns-submit) .vector-sitenotice-container, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .vector-sitenotice-container, body.vector-page-js.ns-8 .vector-sitenotice-container, body.vector-page-css.ns-2 .vector-sitenotice-container, body.vector-page-js.ns-2 .vector-sitenotice-container, body.ns-10:not(.ns-submit) .vector-page-toolbar, body.ns-828:not(.ns-submit) .vector-page-toolbar, body.vector-page-css.ns-8 .vector-page-toolbar, body.vector-page-js.ns-8 .vector-page-toolbar, body.vector-page-css.ns-2 .vector-page-toolbar, body.vector-page-js.ns-2 .vector-page-toolbar, body.ns-10:not(.ns-submit) #bodyContent, body.ns-828:not(.ns-submit) #bodyContent, body.vector-page-css.ns-8 #bodyContent, body.vector-page-js.ns-8 #bodyContent, body.vector-page-css.ns-2 #bodyContent, body.vector-page-js.ns-2 #bodyContent, body.ns-10:not(.ns-submit) #footer, body.ns-828:not(.ns-submit) #footer, body.vector-page-css.ns-8 #footer, body.vector-page-js.ns-8 #footer, body.vector-page-css.ns-2 #footer, body.vector-page-js.ns-2 #footer{ width:100% !important; } @media all and (min-width:745px){ body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner, body.ns-10 .mw-page-container > .mw-page-container-inner, html.client-nojs{ width:100%; order:2; } } html.vector-feature-limited-width-clientpref-0 .mw-body-header, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container, html.vector-feature-limited-width-clientpref-0 #bodyContent, html.vector-feature-limited-width-clientpref-0 #footer, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent, html.client-nojs .mw-page-container > .mw-page-container-inner #footer, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{ width:100% !important; } html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner, html.client-nojs .mw-page-container > .mw-page-container-inner, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{ max-width:100vw; width:100%; overflow:auto; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .vector-page-titlebar-blank .mw-indicators{ display:none; } .mw-body-header{ position:relative; height:2.6rem; box-sizing:border-box; } .mw-body-header > .firstHeading:not(:hover){ height:100%; box-sizing:border-box } body .firstHeading:not(:hover) > .plainlinks, body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{ display:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body .firstHeading > .plainlinks, body:not(.action-view) .firstHeading > .plainlinks{ text-shadow:none; } .mw-body h1.firstHeading{ font-size: 1.6rem; line-height: 1.4; } body.action-view:not(.ns-special) .firstHeading{ min-height:100%; box-sizing:border-box; overflow:hidden; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ height:100%; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; margin-right:7px; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){ display:block !important; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){ display:none !important; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){ display:flex; flex-direction:row; justify-content:flex-start; } body:not(.action-view) .firstHeading:not(:hover), body.action-view.ns-special .firstHeading:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; } body:not(.action-view) firstHeading:first-child:not(:hover), body.action-view.ns-special firstHeading:first-child:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){ margin-left:0; } html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:5px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:0; } body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type, body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{ order:4; } body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{ order:5; } body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main, body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{ order:3; } body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{ order:1; } body.ns-0 .firstHeading:not(:hover) > *[lang], body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{ order:2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body.ns-0 .firstHeading > .mw-editsection{ height:1.2em; line-height:3.8; } body.ns-0 .firstHeading:not(:hover) > .mw-editsection{ order:4; } body .firstHeading:hover{ display:block; border:1px solid #eaecf0; border-radius:10px; background-color:white; position:absolute; top:0; /*left:-6px;*/ width:auto; padding:5px; z-index:2; } .firstHeading:first-child:hover{ left:-6px; } html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{ left:1.4375rem; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{ left:-6px; } header.mw-body-header{ justify-content:space-between; width:100%; box-sizing:border-box; } #vector-main-menu > div.vector-pinnable-header{ margin-left:5px; } body .firstHeading:hover{ word-wrap:break-word; hyphens:auto; width:auto; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{ display:grid !important; justify-content:start; grid-template-columns:auto auto auto auto minmax(auto,1fr); } body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{ grid-row-start:1; grid-row-end:2; grid-column-start:1; grid-column-end:2; width:auto; } body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child, body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{ grid-row-start:1; grid-row-end:2; grid-column-start:3; grid-column-end:4; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{ grid-row-start:1; grid-row-end:2; grid-column-start:2; grid-column-end:3; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-editsection{ grid-row-start:1; grid-row-end:2; grid-column-start:4; grid-column-end:5; width:auto; } body.ns-0.action-view .firstHeading:hover > .plainlinks{ grid-row-start:auto; grid-row-end:auto; grid-column-start:1; grid-column-end:6; width:auto; } body.action-view .firstHeading:hover{ display:block !important; } .mw-body-header > .mw-indicators{ order:3; margin-top:auto; margin-bottom:3px; } .mw-body-header::before{ content:''; display:block; order:3; width:auto; flex:auto 1 1; } .mw-body-header > .vector-toc-landmark{ width:1.5rem; height:2.125rem; } .mw-body-header > .vector-toc-landmark{ order:1; } html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{ margin-right:0; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){ order:2; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{ order:3; } /**/ .mw-body-header > #firstHeading:first-child:not(:hover){ order:2; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{ order:4; } #ca-addsection{ margin-left:0; margin-right:0; } .vector-page-titlebar{ flex-wrap:nowrap; } /**/ .vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{ padding:0.3125em !important; } #vector-page-titlebar-toc-label{ height: 2.125rem; max-width: 28rem; min-height:unset; } .vector-toc-landmark{ margin-top:auto; margin-bottom:0; } .mw-body-header .mw-portlet-lang{ margin-right:0; } #vector-page-titlebar-toc-checkbox{ display:none; } body .firstHeading:hover > .plainlinks, body:not(.action-view) .firstHeading:hover > .plainlinks{ display:block; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){ background-color:whitesmoke; } #mw-panel .mw-menu-inactive, #vector-main-menu-pinned-container .mw-menu-inactive, #vector-main-menu-unpinned-container .mw-menu-inactive, #vector-page-tools-pinned-container .mw-menu-inactive, #vector-page-tools-unpinned-container .mw-menu-inactive{ background-color:lightsteelblue; color:white; } #mw-panel .vector-menu-heading, #vector-main-menu-pinned-container .vector-menu-heading, #vector-main-menu-unpinned-container .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading{ padding-left:5px !important; padding-right:5px !important; margin-left:0 !important; display:block; border-radius:5px; border:1px solid #c8ccd1; margin-top:3px; margin-bottom:0; } #mw-panel .vector-menu-content:not(.mw-items-inactive), #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){ display:block; border-radius:5px; border:1px solid #c8ccd1; padding: 5px; margin-top:2px; } #mw-panel .vector-menu-content:not(.mw-items-inactive) > ul, #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{ margin-top:0; } #mw-panel .mw-items-inactive, #vector-main-menu-unpinned-container .mw-items-inactive, #vector-page-tools-pinned-container .mw-items-inactive, #vector-page-tools-unpinned-container .mw-items-inactive{ display:none; } .vector-main-menu #p-navigation .vector-menu-heading{ display:block; } #mw-panel .vector-main-menu-action, #vector-main-menu-unpinned-container .vector-main-menu-action, #vector-page-tools-pinned-container .vector-main-menu-action, #vector-page-tools-unpinned-container .vector-main-menu-action{ display:none; } #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } body:not(.action-view):not(.ns-special) .vector-body-before-content{ float:right; } body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } body:not(.ns-special) .vector-body-before-content .mw-indicators{ margin-top:2px; float:right; padding-top:0; margin-bottom:0.2px; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{ content:''; display:block; clear:both; order:2; } body.action-view #bodyContent div#siteSub{ display:block !important; } body.action-view:not(.ns-special) .vector-body-before-content #siteSub{ display:block; float:left; order:1; margin-top:5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size:0.8125rem; line-height:1.4em; padding-bottom:1px; } body.action-view:not(.ns-special) .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{ order:3; white-space:nowrap; } body.action-view:not(.ns-special) .vector-body-before-content{ border-bottom:1px solid #c8ccd1; padding-bottom:3px; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } .mw-parser-output hr{ font-size:1.2em; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-view #bodyContent #contentSub{ display:block !important; } #contentSub{ margin-top:5px !important; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } #contentSub2{ margin-top:4px !important; } #contentSub2 > .subpages{ border-bottom:1px solid #c8ccd1; padding-bottom:5px; padding-top:2px; } #pwContent:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; font-size:100%; } html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{ display:block; outline:1px solid #eaecf0; border-radius:10px; box-sizing:border-box; width:100%; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:blue !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{ background-color:green !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ color:white !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ display:block; width:100%; text-decoration:none; font-size: 0.8125rem; line-height:1.4em; box-sizing:border-box; padding:0 5px !important; } .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:-1px; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{ border-bottom:1px solid black; } html.skin-theme-clientpref-night > body ul.redirectText > li{ background-color:white !important; } html.skin-theme-clientpref-night > body ul.redirectText > li a{ background-color:black !important; color:white !important; } html.skin-theme-clientpref-night > body .mw-revslider-revision{ background-color:white !important; z-index:2; } html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{ border-color:none; color:white; background-color:unset; border-color:unset; } html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{ background: var(--background-color-content-removed,#ffe49c); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body .imeselector{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body, html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .vector-header-container, html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog, html.skin-theme-clientpref-night > body > div.ui-dialog *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{ background-image:unset !important; background-color:black !important; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{ filter:invert(100%) grayscale(100%); background-color:transparent !important; } html.skin-theme-clientpref-night > body > #mw-teleport-target{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{ background-color:transparent !important; color:unset !important; background-color:unset !important; } html.skin-theme-clientpref-night > body > .mw-page-container .imeselector, html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img, html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{ filter:invert(100%) grayscale(100%) !important; background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ z-index:0 !important; position:relative !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:black !important; color:white !important; border-color:white !important; z-index:1 !important; position:relative !important; } html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{ z-index:1; position:relative; } html.skin-theme-clientpref-night > body .mw-footer-container, html.skin-theme-clientpref-night > body .mw-footer-container *:not(img), html.skin-theme-clientpref-night > body form.mw-editform .editButtons, html.skin-theme-clientpref-night > body form.mw-editform .editButtons *, html.skin-theme-clientpref-night > body .vector-menu-heading, html.skin-theme-clientpref-night > body .vector-menu-heading *, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{ color:white !important; background-color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body > div.uls-menu, html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon), html.skin-theme-clientpref-night > body > .language-settings-dialog, html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){ color:white; background-color:black; border-color:white; filter:invert(0%); } html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{ background-color:transparent !important; filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{ background-color:transparent !important; border:0 !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{ background-color:white!important; color:black !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){ background-color:black!important; color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{ font-weight:bolder; } html.skin-theme-clientpref-night > body::selection, html.skin-theme-clientpref-night > body *::selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body::-moz-selection html.skin-theme-clientpref-night > body *::-moz-selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{ background-color:dimgray !important; color:black !important; border-color:white !important; filter:grayscale(100%); } html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body hr, html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{ filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons, html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{ color:white !important; background-color:black !important; border:0 !important; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{ background-color:unset; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{ font-weight:bolder; } html.skin-theme-clientpref-night > body span.link > a, html.skin-theme-clientpref-night > body span.link > a:link, html.skin-theme-clientpref-night > body span.link > a:visited, html.skin-theme-clientpref-night > body span.link > a:hover, html.skin-theme-clientpref-night > body span.link > a:active{ color:white; background-color:black; border-color:none; font-weight:bold; } html.skin-theme-clientpref-night > body img.mw-logo-icon{ background-color:white; color:black; border-color:black; } html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{ background-color: gray; mix-blend-mode:unset; } html.skin-theme-clientpref-night > body .uls-language-actions-close, html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages, html.skin-theme-clientpref-night > body a.mw-logo img, html.skin-theme-clientpref-night > body span.vector-icon img{ filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{ background-color:white; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{ background-color:black; } html.skin-theme-clientpref-night > body a.mw-logo{ background-color:black; } html.skin-theme-clientpref-night > body span.vector-icon{ background-color:white; } @media screen { html.skin-theme-clientpref-night span.tab > a.skin-invert, html.skin-theme-clientpref-night a.skin-invert.label, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{ color-scheme:unset !important; filter:none !important; } } @media screen { html.skin-theme-clientpref-night .skin-invert-image img, html.skin-theme-clientpref-night .skin-invert.label::after, html.skin-theme-clientpref-night .skin-invert.current::before, html.skin-theme-clientpref-night .oo-ui-iconElement-icon, html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before, html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow, html.skin-theme-clientpref-night input[type="checkbox"]{ color-scheme: light !important; filter: invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon, html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{ filter:grayscale(100%) !important; } } html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget, html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{ filter:invert(0%) grayscale(100%); } div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger, html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay), html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *, html.skin-theme-clientpref-night > body form#wpFilterForm, html.skin-theme-clientpref-night > body form#wpFilterForm *, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-container, html.skin-theme-clientpref-night > body div.mw-rcfilters-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *, html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{ background-color:unset !important; } html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{ background-color:black; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{ position:relative; box-shadow:none; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{ background-color: white; color: black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{ color:white; background-color:black; border-color:white; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } p3pjefxfgwporwgpv2ftwo94jwus2nv 540757 540756 2026-04-25T21:27:32Z Persino 2851 540757 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; word-break: break-word; } body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table, body.action-submit #wikiPreview table, body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table *, body.action-submit #wikiPreview table *{ word-wrap: normal; word-break: normal; } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:#ececec; background-attachment:fixed; margin-left:0; margin-right:0; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } @media all and (max-width:476px){ .mw-page-container{ min-height:calc( 100% - 6.75rem - 1px - 4px - 8px ); width:100% !important; } } @media all and (max-width:999px){ .mw-page-container{ width:100% !important; } } .mw-page-container > .mw-page-container-inner{ background-color:white; padding-left: 5px; padding-right: 5px; } .mw-page-container > .mw-page-container-inner{ max-width:100vw; margin:auto; margin-top:0; } .vector-main-menu-container, .mw-content-container{ margin-top:2px; } @media all and (min-width:999px){ .mw-page-container > .mw-page-container-inner{ padding-left:5px; padding-right:5px; max-width:100%; } .mw-page-container > .mw-page-container-inner{ width:auto; } .vector-feature-limited-width-clientpref-0 #content{ width:100%; } .mw-page-container .mw-content-container{ display:flex; flex-direction:column; } .mw-page-container .mw-content-container > #content{ height:auto; order:1; } .mw-page-container .mw-content-container > #mw-data-after-content{ order:2; } html.client-nojs #bodyContent{ width:auto !important; } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ .mw-footer-container{ display: flex; flex-direction: row; align-items: stretch; justify-content: center; } } body, .mw-page-container, .mw-page-container-inner, .mw-content-container, #content, #bodyContent, #mw-content-text, .mw-parser-output, #footer, .vector-sitenotice-container{ max-width:-moz-available !important; max-width:-webkit-fill-available !important; max-width:stretch !important; } body.ns-10:not(.ns-submit) .mw-body-header, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .mw-body-header, body.vector-page-js.ns-8 .mw-body-header, body.vector-page-css.ns-2 .mw-body-header, body.vector-page-js.ns-2 .mw-body-header, body.ns-10:not(.ns-submit) .vector-sitenotice-container, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .vector-sitenotice-container, body.vector-page-js.ns-8 .vector-sitenotice-container, body.vector-page-css.ns-2 .vector-sitenotice-container, body.vector-page-js.ns-2 .vector-sitenotice-container, body.ns-10:not(.ns-submit) .vector-page-toolbar, body.ns-828:not(.ns-submit) .vector-page-toolbar, body.vector-page-css.ns-8 .vector-page-toolbar, body.vector-page-js.ns-8 .vector-page-toolbar, body.vector-page-css.ns-2 .vector-page-toolbar, body.vector-page-js.ns-2 .vector-page-toolbar, body.ns-10:not(.ns-submit) #bodyContent, body.ns-828:not(.ns-submit) #bodyContent, body.vector-page-css.ns-8 #bodyContent, body.vector-page-js.ns-8 #bodyContent, body.vector-page-css.ns-2 #bodyContent, body.vector-page-js.ns-2 #bodyContent, body.ns-10:not(.ns-submit) #footer, body.ns-828:not(.ns-submit) #footer, body.vector-page-css.ns-8 #footer, body.vector-page-js.ns-8 #footer, body.vector-page-css.ns-2 #footer, body.vector-page-js.ns-2 #footer{ width:100% !important; } @media all and (min-width:745px){ body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner, body.ns-10 .mw-page-container > .mw-page-container-inner, html.client-nojs{ width:100%; order:2; } } html.vector-feature-limited-width-clientpref-0 .mw-body-header, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container, html.vector-feature-limited-width-clientpref-0 #bodyContent, html.vector-feature-limited-width-clientpref-0 #footer, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent, html.client-nojs .mw-page-container > .mw-page-container-inner #footer, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{ width:100% !important; } html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner, html.client-nojs .mw-page-container > .mw-page-container-inner, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{ max-width:100vw; width:100%; overflow:auto; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .vector-page-titlebar-blank .mw-indicators{ display:none; } .mw-body-header{ position:relative; height:2.6rem; box-sizing:border-box; } .mw-body-header > .firstHeading:not(:hover){ height:100%; box-sizing:border-box } body .firstHeading:not(:hover) > .plainlinks, body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{ display:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body .firstHeading > .plainlinks, body:not(.action-view) .firstHeading > .plainlinks{ text-shadow:none; } .mw-body h1.firstHeading{ font-size: 1.6rem; line-height: 1.4; } body.action-view:not(.ns-special) .firstHeading{ min-height:100%; box-sizing:border-box; overflow:hidden; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ height:100%; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; margin-right:7px; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){ display:block !important; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){ display:none !important; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){ display:flex; flex-direction:row; justify-content:flex-start; } body:not(.action-view) .firstHeading:not(:hover), body.action-view.ns-special .firstHeading:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; } body:not(.action-view) firstHeading:first-child:not(:hover), body.action-view.ns-special firstHeading:first-child:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){ margin-left:0; } html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:5px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:0; } body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type, body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{ order:4; } body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{ order:5; } body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main, body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{ order:3; } body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{ order:1; } body.ns-0 .firstHeading:not(:hover) > *[lang], body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{ order:2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body.ns-0 .firstHeading > .mw-editsection{ height:1.2em; line-height:3.8; } body.ns-0 .firstHeading:not(:hover) > .mw-editsection{ order:4; } body .firstHeading:hover{ display:block; border:1px solid #eaecf0; border-radius:10px; background-color:white; position:absolute; top:0; /*left:-6px;*/ width:auto; padding:5px; z-index:2; } .firstHeading:first-child:hover{ left:-6px; } html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{ left:1.4375rem; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{ left:-6px; } header.mw-body-header{ justify-content:space-between; width:100%; box-sizing:border-box; } #vector-main-menu > div.vector-pinnable-header{ margin-left:5px; } body .firstHeading:hover{ word-wrap:break-word; hyphens:auto; width:auto; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{ display:grid !important; justify-content:start; grid-template-columns:auto auto auto auto minmax(auto,1fr); } body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{ grid-row-start:1; grid-row-end:2; grid-column-start:1; grid-column-end:2; width:auto; } body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child, body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{ grid-row-start:1; grid-row-end:2; grid-column-start:3; grid-column-end:4; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{ grid-row-start:1; grid-row-end:2; grid-column-start:2; grid-column-end:3; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-editsection{ grid-row-start:1; grid-row-end:2; grid-column-start:4; grid-column-end:5; width:auto; } body.ns-0.action-view .firstHeading:hover > .plainlinks{ grid-row-start:auto; grid-row-end:auto; grid-column-start:1; grid-column-end:6; width:auto; } body.action-view .firstHeading:hover{ display:block !important; } .mw-body-header > .mw-indicators{ order:3; margin-top:auto; margin-bottom:3px; } .mw-body-header::before{ content:''; display:block; order:3; width:auto; flex:auto 1 1; } .mw-body-header > .vector-toc-landmark{ width:1.5rem; height:2.125rem; } .mw-body-header > .vector-toc-landmark{ order:1; } html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{ margin-right:0; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){ order:2; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{ order:3; } /**/ .mw-body-header > #firstHeading:first-child:not(:hover){ order:2; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{ order:4; } #ca-addsection{ margin-left:0; margin-right:0; } .vector-page-titlebar{ flex-wrap:nowrap; } /**/ .vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{ padding:0.3125em !important; } #vector-page-titlebar-toc-label{ height: 2.125rem; max-width: 28rem; min-height:unset; } .vector-toc-landmark{ margin-top:auto; margin-bottom:0; } .mw-body-header .mw-portlet-lang{ margin-right:0; } #vector-page-titlebar-toc-checkbox{ display:none; } body .firstHeading:hover > .plainlinks, body:not(.action-view) .firstHeading:hover > .plainlinks{ display:block; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){ background-color:whitesmoke; } #mw-panel .mw-menu-inactive, #vector-main-menu-pinned-container .mw-menu-inactive, #vector-main-menu-unpinned-container .mw-menu-inactive, #vector-page-tools-pinned-container .mw-menu-inactive, #vector-page-tools-unpinned-container .mw-menu-inactive{ background-color:lightsteelblue; color:white; } #mw-panel .vector-menu-heading, #vector-main-menu-pinned-container .vector-menu-heading, #vector-main-menu-unpinned-container .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading{ padding-left:5px !important; padding-right:5px !important; margin-left:0 !important; display:block; border-radius:5px; border:1px solid #c8ccd1; margin-top:3px; margin-bottom:0; } #mw-panel .vector-menu-content:not(.mw-items-inactive), #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){ display:block; border-radius:5px; border:1px solid #c8ccd1; padding: 5px; margin-top:2px; } #mw-panel .vector-menu-content:not(.mw-items-inactive) > ul, #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{ margin-top:0; } #mw-panel .mw-items-inactive, #vector-main-menu-unpinned-container .mw-items-inactive, #vector-page-tools-pinned-container .mw-items-inactive, #vector-page-tools-unpinned-container .mw-items-inactive{ display:none; } .vector-main-menu #p-navigation .vector-menu-heading{ display:block; } #mw-panel .vector-main-menu-action, #vector-main-menu-unpinned-container .vector-main-menu-action, #vector-page-tools-pinned-container .vector-main-menu-action, #vector-page-tools-unpinned-container .vector-main-menu-action{ display:none; } #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } body:not(.action-view):not(.ns-special) .vector-body-before-content{ float:right; } body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } body:not(.ns-special) .vector-body-before-content .mw-indicators{ margin-top:2px; float:right; padding-top:0; margin-bottom:0.2px; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{ content:''; display:block; clear:both; order:2; } body.action-view #bodyContent div#siteSub{ display:block !important; } body.action-view:not(.ns-special) .vector-body-before-content #siteSub{ display:block; float:left; order:1; margin-top:5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size:0.8125rem; line-height:1.4em; padding-bottom:1px; } body.action-view:not(.ns-special) .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{ order:3; white-space:nowrap; } body.action-view:not(.ns-special) .vector-body-before-content{ border-bottom:1px solid #c8ccd1; padding-bottom:3px; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } .mw-parser-output hr{ font-size:1.2em; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-view #bodyContent #contentSub{ display:block !important; } #contentSub{ margin-top:5px !important; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } #contentSub2{ margin-top:4px !important; } #contentSub2 > .subpages{ border-bottom:1px solid #c8ccd1; padding-bottom:5px; padding-top:2px; } #pwContent:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; font-size:100%; } html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{ display:block; outline:1px solid #eaecf0; border-radius:10px; box-sizing:border-box; width:100%; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:blue !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{ background-color:green !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ color:white !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ display:block; width:100%; text-decoration:none; font-size: 0.8125rem; line-height:1.4em; box-sizing:border-box; padding:0 5px !important; } .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:-1px; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{ border-bottom:1px solid black; } html.skin-theme-clientpref-night > body ul.redirectText > li{ background-color:white !important; } html.skin-theme-clientpref-night > body ul.redirectText > li a{ background-color:black !important; color:white !important; } html.skin-theme-clientpref-night > body .mw-revslider-revision{ background-color:white !important; z-index:2; } html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{ border-color:none; color:white; background-color:unset; border-color:unset; } html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{ background: var(--background-color-content-removed,#ffe49c); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body .imeselector{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body, html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .vector-header-container, html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog, html.skin-theme-clientpref-night > body > div.ui-dialog *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{ background-image:unset !important; background-color:black !important; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{ filter:invert(100%) grayscale(100%); background-color:transparent !important; } html.skin-theme-clientpref-night > body > #mw-teleport-target{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{ background-color:transparent !important; color:unset !important; background-color:unset !important; } html.skin-theme-clientpref-night > body > .mw-page-container .imeselector, html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img, html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{ filter:invert(100%) grayscale(100%) !important; background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ z-index:0 !important; position:relative !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:black !important; color:white !important; border-color:white !important; z-index:1 !important; position:relative !important; } html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{ z-index:1; position:relative; } html.skin-theme-clientpref-night > body .mw-footer-container, html.skin-theme-clientpref-night > body .mw-footer-container *:not(img), html.skin-theme-clientpref-night > body form.mw-editform .editButtons, html.skin-theme-clientpref-night > body form.mw-editform .editButtons *, html.skin-theme-clientpref-night > body .vector-menu-heading, html.skin-theme-clientpref-night > body .vector-menu-heading *, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{ color:white !important; background-color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body > div.uls-menu, html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon), html.skin-theme-clientpref-night > body > .language-settings-dialog, html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){ color:white; background-color:black; border-color:white; filter:invert(0%); } html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{ background-color:transparent !important; filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{ background-color:transparent !important; border:0 !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{ background-color:white!important; color:black !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){ background-color:black!important; color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{ font-weight:bolder; } html.skin-theme-clientpref-night > body::selection, html.skin-theme-clientpref-night > body *::selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body::-moz-selection html.skin-theme-clientpref-night > body *::-moz-selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{ background-color:dimgray !important; color:black !important; border-color:white !important; filter:grayscale(100%); } html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body hr, html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{ filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons, html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{ color:white !important; background-color:black !important; border:0 !important; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{ background-color:unset; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{ font-weight:bolder; } html.skin-theme-clientpref-night > body span.link > a, html.skin-theme-clientpref-night > body span.link > a:link, html.skin-theme-clientpref-night > body span.link > a:visited, html.skin-theme-clientpref-night > body span.link > a:hover, html.skin-theme-clientpref-night > body span.link > a:active{ color:white; background-color:black; border-color:none; font-weight:bold; } html.skin-theme-clientpref-night > body img.mw-logo-icon{ background-color:white; color:black; border-color:black; } html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{ background-color: gray; mix-blend-mode:unset; } html.skin-theme-clientpref-night > body .uls-language-actions-close, html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages, html.skin-theme-clientpref-night > body a.mw-logo img, html.skin-theme-clientpref-night > body span.vector-icon img{ filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{ background-color:white; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{ background-color:black; } html.skin-theme-clientpref-night > body a.mw-logo{ background-color:black; } html.skin-theme-clientpref-night > body span.vector-icon{ background-color:white; } @media screen { html.skin-theme-clientpref-night span.tab > a.skin-invert, html.skin-theme-clientpref-night a.skin-invert.label, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{ color-scheme:unset !important; filter:none !important; } } @media screen { html.skin-theme-clientpref-night .skin-invert-image img, html.skin-theme-clientpref-night .skin-invert.label::after, html.skin-theme-clientpref-night .skin-invert.current::before, html.skin-theme-clientpref-night .oo-ui-iconElement-icon, html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before, html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow, html.skin-theme-clientpref-night input[type="checkbox"]{ color-scheme: light !important; filter: invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon, html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{ filter:grayscale(100%) !important; } } html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget, html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{ filter:invert(0%) grayscale(100%); } div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger, html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay), html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *, html.skin-theme-clientpref-night > body form#wpFilterForm, html.skin-theme-clientpref-night > body form#wpFilterForm *, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-container, html.skin-theme-clientpref-night > body div.mw-rcfilters-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *, html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{ background-color:unset !important; } html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{ background-color:black; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{ position:relative; box-shadow:none; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{ background-color: white; color: black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{ color:white; background-color:black; border-color:white; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } orpqastkc0kb4z3qhc65lucm989m1iu 540758 540757 2026-04-25T21:27:59Z Persino 2851 Anulowano wersję [[Special:Diff/540757|540757]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]]) 540758 css text/css /* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */ body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output, body.action-submit #wikiPreview, .mw-footer-container{ word-wrap: break-word; word-break: break-word; } body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table, body.action-submit #wikiPreview table, body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output table *, body.action-submit #wikiPreview table *{ word-wrap: normal; word-break: normal; } .mw-content-container, .vector-sticky-header, .vector-page-toolbar-container{ max-width: unset !important; } .mw-header{ padding-top:4px; padding-bottom:4px; } .vector-header-container{ box-sizing:border-box; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; } html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{ margin-top:-2px; } .vector-pinnable-element{ padding-top:3px; } .vector-dropdown .vector-dropdown-content{ padding-top: 6px; margin-top: 7px; } .vector-header-container{ padding-left:20px; padding-right:20px; max-width:none; border-bottom: 1px solid #eaecf0; margin-bottom:4px; max-width:100%; min-width:auto; box-sizing:border-box; } .vector-pinned-container{ margin-bottom:0; padding-right:2px !important; padding-top:2px; } #vector-page-tools-pinned-container.vector-pinned-container{ margin-bottom:0; padding-right:8px !important; } .mw-logo{ min-width:auto; } @media screen and (max-width: 999px){ .mw-header.vector-header-search-toggled .vector-search-box{ margin-left:0; } .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){ margin-left:0; } } @media screen and (max-width: 390px){ .mw-logo{ display:none; } } @media screen and (max-width: 454px){ .cdx-text-input__input{ min-width:auto; } } @media screen and (min-width: 999px) { .client-js.vector-sticky-header-enabled{ scroll-padding-top: 50px; } } .mw-page-container{ max-width:100vw; width:100%; box-sizing:border-box; display:flex; flex-direction:row; min-height:calc( 100% - 3.125rem - 1px - 4px - 8px ); box-sizing:border-box; background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png"); background-color:cornflowerblue; background-attachment:fixed; margin-left:0; margin-right:0; } @media all and (max-width:999px){ .mw-page-container{ background-image:none; } } html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container, html.vector-is-page-available > body > .mw-page-container{ background-image:none; } @media all and (max-width:476px){ .mw-page-container{ min-height:calc( 100% - 6.75rem - 1px - 4px - 8px ); width:100% !important; } } @media all and (max-width:999px){ .mw-page-container{ width:100% !important; } } .mw-page-container > .mw-page-container-inner{ background-color:white; padding-left: 5px; padding-right: 5px; } .mw-page-container > .mw-page-container-inner{ max-width:100vw; margin:auto; margin-top:0; } .vector-main-menu-container, .mw-content-container{ margin-top:2px; } @media all and (min-width:999px){ .mw-page-container > .mw-page-container-inner{ padding-left:5px; padding-right:5px; max-width:100%; } .mw-page-container > .mw-page-container-inner{ width:auto; } .vector-feature-limited-width-clientpref-0 #content{ width:100%; } .mw-page-container .mw-content-container{ display:flex; flex-direction:column; } .mw-page-container .mw-content-container > #content{ height:auto; order:1; } .mw-page-container .mw-content-container > #mw-data-after-content{ order:2; } html.client-nojs #bodyContent{ width:auto !important; } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent, html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px ); } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container, html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px ); } /**/ html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem ); } html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem ); } html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container, html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{ width:calc(50rem + 2 * 0.625rem + 2px ); } html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{ width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem ); } /**/ .mw-footer-container{ display: flex; flex-direction: row; align-items: stretch; justify-content: center; } } body, .mw-page-container, .mw-page-container-inner, .mw-content-container, #content, #bodyContent, #mw-content-text, .mw-parser-output, #footer, .vector-sitenotice-container{ max-width:-moz-available !important; max-width:-webkit-fill-available !important; max-width:stretch !important; } body.ns-10:not(.ns-submit) .mw-body-header, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .mw-body-header, body.vector-page-js.ns-8 .mw-body-header, body.vector-page-css.ns-2 .mw-body-header, body.vector-page-js.ns-2 .mw-body-header, body.ns-10:not(.ns-submit) .vector-sitenotice-container, body.ns-828:not(.ns-submit) .vector-sitenotice-container, body.vector-page-css.ns-8 .vector-sitenotice-container, body.vector-page-js.ns-8 .vector-sitenotice-container, body.vector-page-css.ns-2 .vector-sitenotice-container, body.vector-page-js.ns-2 .vector-sitenotice-container, body.ns-10:not(.ns-submit) .vector-page-toolbar, body.ns-828:not(.ns-submit) .vector-page-toolbar, body.vector-page-css.ns-8 .vector-page-toolbar, body.vector-page-js.ns-8 .vector-page-toolbar, body.vector-page-css.ns-2 .vector-page-toolbar, body.vector-page-js.ns-2 .vector-page-toolbar, body.ns-10:not(.ns-submit) #bodyContent, body.ns-828:not(.ns-submit) #bodyContent, body.vector-page-css.ns-8 #bodyContent, body.vector-page-js.ns-8 #bodyContent, body.vector-page-css.ns-2 #bodyContent, body.vector-page-js.ns-2 #bodyContent, body.ns-10:not(.ns-submit) #footer, body.ns-828:not(.ns-submit) #footer, body.vector-page-css.ns-8 #footer, body.vector-page-js.ns-8 #footer, body.vector-page-css.ns-2 #footer, body.vector-page-js.ns-2 #footer{ width:100% !important; } @media all and (min-width:745px){ body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner, body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner, body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner, body.ns-10 .mw-page-container > .mw-page-container-inner, html.client-nojs{ width:100%; order:2; } } html.vector-feature-limited-width-clientpref-0 .mw-body-header, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container, html.vector-feature-limited-width-clientpref-0 #bodyContent, html.vector-feature-limited-width-clientpref-0 #footer, html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent, html.client-nojs .mw-page-container > .mw-page-container-inner #footer, html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{ width:100% !important; } html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner, html.client-nojs .mw-page-container > .mw-page-container-inner, html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{ max-width:100vw; width:100%; overflow:auto; } #bodyContent, #content{ box-sizing:border-box; } .vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner, .vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{ grid-template-columns: minmax(0,1fr); } body{ background-color:white; } .mw-footer-container{ padding: 7px 0 2px 0; } .mw-footer-container > .mw-footer{ padding:10px 5px; } .mw-page-container{ padding-right:0; padding-left:0; box-sizing:border-box; min-width:auto; } @media all and (min-width: 1000px){ .mw-body{ grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto; grid-template-areas: 'titlebar titlebar' 'toolbar toolbar' 'content columnEnd' '.. columnEnd'; column-gap:0 !important; width:100%; box-sizing:border-box; } } .mw-page-container-inner{ grid-template-columns: 15rem minmax(0,1fr); column-gap: 5px; } html.vector-column-end .vector-appearance-landmark{ max-width:11.875rem; } html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ display:none; } html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{ width:8.125rem !important; } html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{ width:11.875rem; } html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end, html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{ width:11.875rem; } .vector-sticky-pinned-container{ padding-bottom:5px; } .vector-sticky-pinned-container::after{ display:none; } .vector-sticky-pinned-container{ top:0; } .client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{ top: 0 !important; max-height:calc( 100vh - 3px ); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{ top: 3.2rem !important; max-height: calc(100vh - 3.2rem - 5px); } .client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{ top: 3.5rem !important; } #siteNotice{ margin:unset; } #centralNotice:not(:empty){ margin: 5px 0 8px 0; } #centralNotice:not(:empty) > div:first-of-type{ margin-top:5px; } #centralNotice:not(:empty) > div:last-of-type{ margin-bottom:8px; } .mw-indicators{ white-space:nowrap; font-size: 0.875rem; line-height: 1.4; } .mw-indicators .mw-parser-output{ font-size: 1.0em; line-height: 1.4; } .vector-page-titlebar-blank .mw-indicators{ display:none; } .mw-body-header{ position:relative; height:2.6rem; box-sizing:border-box; } .mw-body-header > .firstHeading:not(:hover){ height:100%; box-sizing:border-box } body .firstHeading:not(:hover) > .plainlinks, body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{ display:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body .firstHeading > .plainlinks, body:not(.action-view) .firstHeading > .plainlinks{ text-shadow:none; } .mw-body h1.firstHeading{ font-size: 1.6rem; line-height: 1.4; } body.action-view:not(.ns-special) .firstHeading{ min-height:100%; box-sizing:border-box; overflow:hidden; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ height:100%; } body.action-view:not(.ns-special) .firstHeading:not(:hover){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; margin-right:7px; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){ display:block !important; } body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){ display:none !important; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){ display:flex; flex-direction:row; justify-content:flex-start; } body:not(.action-view) .firstHeading:not(:hover), body.action-view.ns-special .firstHeading:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-bottom:0; padding-top:6px; } body:not(.action-view) firstHeading:first-child:not(:hover), body.action-view.ns-special firstHeading:first-child:not(:hover), html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){ margin-left:0; } html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:5px; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover), html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){ margin-left:0; } body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type, body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{ order:4; } body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{ order:5; } body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main, body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{ order:3; } body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering, body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{ order:1; } body.ns-0 .firstHeading:not(:hover) > *[lang], body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{ order:2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } body.ns-0 .firstHeading > .mw-editsection{ height:1.2em; line-height:3.8; } body.ns-0 .firstHeading:not(:hover) > .mw-editsection{ order:4; } body .firstHeading:hover{ display:block; border:1px solid #eaecf0; border-radius:10px; background-color:white; position:absolute; top:0; /*left:-6px;*/ width:auto; padding:5px; z-index:2; } .firstHeading:first-child:hover{ left:-6px; } html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{ left:1.4375rem; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{ left:-6px; } header.mw-body-header{ justify-content:space-between; width:100%; box-sizing:border-box; } #vector-main-menu > div.vector-pinnable-header{ margin-left:5px; } body .firstHeading:hover{ word-wrap:break-word; hyphens:auto; width:auto; } html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{ display:grid !important; justify-content:start; grid-template-columns:auto auto auto auto minmax(auto,1fr); } body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{ grid-row-start:1; grid-row-end:2; grid-column-start:1; grid-column-end:2; width:auto; } body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child, body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{ grid-row-start:1; grid-row-end:2; grid-column-start:3; grid-column-end:4; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{ grid-row-start:1; grid-row-end:2; grid-column-start:2; grid-column-end:3; width:auto; } body.ns-0.action-view .firstHeading:hover > .mw-editsection{ grid-row-start:1; grid-row-end:2; grid-column-start:4; grid-column-end:5; width:auto; } body.ns-0.action-view .firstHeading:hover > .plainlinks{ grid-row-start:auto; grid-row-end:auto; grid-column-start:1; grid-column-end:6; width:auto; } body.action-view .firstHeading:hover{ display:block !important; } .mw-body-header > .mw-indicators{ order:3; margin-top:auto; margin-bottom:3px; } .mw-body-header::before{ content:''; display:block; order:3; width:auto; flex:auto 1 1; } .mw-body-header > .vector-toc-landmark{ width:1.5rem; height:2.125rem; } .mw-body-header > .vector-toc-landmark{ order:1; } html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{ margin-right:0; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){ order:2; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{ order:3; } /**/ .mw-body-header > #firstHeading:first-child:not(:hover){ order:2; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{ order:4; } .mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{ order:3; } .mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{ order:4; } #ca-addsection{ margin-left:0; margin-right:0; } .vector-page-titlebar{ flex-wrap:nowrap; } /**/ .vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{ padding:0.3125em !important; } #vector-page-titlebar-toc-label{ height: 2.125rem; max-width: 28rem; min-height:unset; } .vector-toc-landmark{ margin-top:auto; margin-bottom:0; } .mw-body-header .mw-portlet-lang{ margin-right:0; } #vector-page-titlebar-toc-checkbox{ display:none; } body .firstHeading:hover > .plainlinks, body:not(.action-view) .firstHeading:hover > .plainlinks{ display:block; } #mw-panel{ border-radius: 10px; border: 1px solid #c8ccd1; padding: 5px; } /**/ #mw-panel .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive), #vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){ background-color:whitesmoke; } #mw-panel .mw-menu-inactive, #vector-main-menu-pinned-container .mw-menu-inactive, #vector-main-menu-unpinned-container .mw-menu-inactive, #vector-page-tools-pinned-container .mw-menu-inactive, #vector-page-tools-unpinned-container .mw-menu-inactive{ background-color:lightsteelblue; color:white; } #mw-panel .vector-menu-heading, #vector-main-menu-pinned-container .vector-menu-heading, #vector-main-menu-unpinned-container .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading{ padding-left:5px !important; padding-right:5px !important; margin-left:0 !important; display:block; border-radius:5px; border:1px solid #c8ccd1; margin-top:3px; margin-bottom:0; } #mw-panel .vector-menu-content:not(.mw-items-inactive), #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive), #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){ display:block; border-radius:5px; border:1px solid #c8ccd1; padding: 5px; margin-top:2px; } #mw-panel .vector-menu-content:not(.mw-items-inactive) > ul, #vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul, #vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{ margin-top:0; } #mw-panel .mw-items-inactive, #vector-main-menu-unpinned-container .mw-items-inactive, #vector-page-tools-pinned-container .mw-items-inactive, #vector-page-tools-unpinned-container .mw-items-inactive{ display:none; } .vector-main-menu #p-navigation .vector-menu-heading{ display:block; } #mw-panel .vector-main-menu-action, #vector-main-menu-unpinned-container .vector-main-menu-action, #vector-page-tools-pinned-container .vector-main-menu-action, #vector-page-tools-unpinned-container .vector-main-menu-action{ display:none; } #mw-panel.hidden_sidebar_panel{ position:relative; z-index:1; } #mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{ position:absolute; right:0; } #mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{ display:none; } #mw-panel #vector-main-menu-pinned-container{ padding-left:0 !important; } #vector-main-menu-pinned-container .vector-main-menu{ margin-left:0 !important; margin-top:0 !important; } #mw-data-after-content .cdx-card{ margin:5px 0; border-radius:10px; } .vector-unpinned-container .vector-menu{ margin:0 5px; } #mw-content-text .mw-parser-output code{ position:relative; } .mw-parser-output pre{ margin-top:8px; margin-bottom:8px; background-color: #f8f9fa; color: #000; border: 1px solid #eaecf0; word-wrap:break-word; word-break:break-word; hyphens:auto; box-sizing:border-box; font-size:110%; } .client-js .vector-search-box-vue .cdx-search-input{ position:relative; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{ border-right-color:#a2a9b1 !important; } .client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{ position:absolute; right:0; } html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button, html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{ position:relative; } .mw-content-container #content{ border-radius:10px; border:1px solid #c8ccd1; padding:10px; padding-top:8px; } body:not(.action-view):not(.ns-special) .vector-body-before-content{ float:right; } body.ns-special .vector-body-before-content .mw-indicators{ margin-top:6px; float:right; padding-top:0; } body:not(.ns-special) .vector-body-before-content .mw-indicators{ margin-top:2px; float:right; padding-top:0; margin-bottom:0.2px; } .vector-body-before-content > .mw-indicators img, .mw-body-header .mw-indicators img{ max-height:1.7em; } body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{ content:''; display:block; clear:both; order:2; } body.action-view #bodyContent div#siteSub{ display:block !important; } body.action-view:not(.ns-special) .vector-body-before-content #siteSub{ display:block; float:left; order:1; margin-top:5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size:0.8125rem; line-height:1.4em; padding-bottom:1px; } body.action-view:not(.ns-special) .vector-body-before-content{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{ order:3; white-space:nowrap; } body.action-view:not(.ns-special) .vector-body-before-content{ border-bottom:1px solid #c8ccd1; padding-bottom:3px; display:flex; flex-direction:row; justify-content:space-between; align-items: flex-end; } #mw-content-text{ margin-top:10px; } .catlinks{ margin-top:7px !important; } .mw-category-generated > :first-child > h2:first-child{ margin-top:14px; } body.ns-14 .mw-category-generated > p:only-child{ border:1px solid #c8ccd1; padding:5px; margin-top:5px; margin-bottom:5px; } body.ns-14 .mw-parser-output.blank{ margin-top:-3px; } body.ns-14 .mw-parser-output.blank ~ .printfooter{ margin-top:3px; } #content::after{ content:''; clear:both; display:block; } #bodyContent{ margin-bottom:0; box-sizing: border-box; } body.action-edit #bodyContent #editform{ margin-top:5px; } body{ font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif; font-stretch:normal; font-variant:normal; font-style:normal; font-weight:normal; font-size-adjust:none; letter-spacing:normal; word-spacing:normal; text-align:left; word-wrap:break-word; hyphens:auto; } body.action-history #mw-content-text > *:first-child{ margin-top:8px; } .mw-parser-output hr{ font-size:1.2em; } #mw-content-text, #mw-content-text .mw-message-box-warning, #mw-content-text .mw-parser-output{ font-size: calc(0.875rem * 0.89944); line-height: 1.4em; } .mw-ui-icon{ font-size:1rem; } body{ font-size:1rem; line-height:1.4em; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{ margin-top:0; } /**/ body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:8px; } body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ content:''; clear:both; display:block; } body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:3px; } body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before, body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{ margin-bottom:0; } body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after, body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{ margin-top:0; } /**/ body:not(.page-Wikibooks_Strona_główna) .printfooter{ display:block; padding:5px; border:1px solid #c8ccd1; margin-top:6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; clear:both; } .noarticletext{ margin-top:0; margin-bottom:7px; } body.action-view #bodyContent #contentSub{ display:block !important; } #contentSub{ margin-top:5px !important; } #contentSub > #pwContent > #pwPathway, #contentSub > #pwContent > #pwPathway + #pwNav, #contentSub > #mw-content-subtitle, #contentSub > #mw-content-subtitle > .subpages, #contentSub2 > .subpages > .mw-undelete-subtitle{ font-size:0.75rem; line-height:1.2em; } #contentSub2{ margin-top:4px !important; } #contentSub2 > .subpages{ border-bottom:1px solid #c8ccd1; padding-bottom:5px; padding-top:2px; } #pwContent:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; font-size:100%; } html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty), html.client-nojs #mw-content-subtitle:not(:empty){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle > .subpages:not(:last-child){ border-bottom:1px solid #c8ccd1; padding-bottom:3px; } #mw-content-subtitle .mw-message-box-warning:not(:last-child){ margin:10px 0; } #mw-content-subtitle .mw-message-box-warning:last-child{ margin:10px 0 8px 0; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:10px !important; margin-bottom:10px !important; } #mw-content-subtitle #redirectsub, #mw-content-subtitle .mw-redirectedfrom{ display:block; margin: 5px 0 2px 0; } #mw-content-subtitle .mw-redirectedfrom:not(:last-child){ border-bottom: 1px solid #c8ccd1; } #mw-content-text > .mw-message-box-warning:first-child{ margin:10px 0; } #mw-content-text > .mw-message-box-warning{ margin:5px 0 10px 0; } body.action-edit #mw-content-text > .mw-editnotice:first-child{ margin-top:12px; } body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{ margin-top:-3px; } body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{ margin-top:18px; } body:not(.action-view) #mw-content-text > p:first-child{ margin-top:3px; } #contentsub::after{ content:''; display:block; } .previewnote, #wikiPreview.ontop{ margin-bottom:10px; max-width:unset; } body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{ margin-top:0.8em; margin-bottom:0.4em; } div.thumb.tright:first-child, div.thumb.tleft:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:first-child{ margin-top:0; } #mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{ margin-bottom:0; } #mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).floatright:first-child + p, #mw-content-text .mw-parser-output > :not(p).tleft:first-child + p, #mw-content-text .mw-parser-output > :not(p).tright:first-child + p{ margin-top:0; } #mw-content-text .mw-parser-output .template-documentation:first-of-type{ margin-top:0; box-sizing:border-box; } #mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{ margin-top:10px !important; box-sizing:border-box !important; } #mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){ margin-top:3px !important; margin-bottom:3px !important; } #mw-content-text .mw-parser-output #documentation-meta-data:last-child{ margin-top:3px !important; margin-bottom:0 !important; } body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{ display:block; content:'(pusta)'; float:left; } .vector-body{ font-size: calc(1rem * 0.875); line-height: 1.5em; } @media all and (min-width:999px){ html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body, html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{ border-right: 1px solid #c8ccd1; border-bottom:1px solid #c8ccd1; padding-right:0.625rem; padding-bottom:0.625rem; } } .vector-toc .vector-toc-list-item a{ font-size:0.8125rem; line-height:1.4em; } .wb-langlinks-link > a::before{ margin-left:-8px; } /**/ .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{ display:block; outline:1px solid #eaecf0; border-radius:10px; box-sizing:border-box; width:100%; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:blue !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{ background-color:green !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ color:white !important; } .vector-pinned-container .vector-toc ul.vector-toc-contents li > a, .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ display:block; width:100%; text-decoration:none; font-size: 0.8125rem; line-height:1.4em; box-sizing:border-box; padding:0 5px !important; } .vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ margin-top:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{ margin-bottom:5px; } .vector-column-start .vector-main-menu-container, html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{ margin-left:12px; } @media (min-width: 999px){ html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ border-radius:10px; border:1px solid #c8ccd1; padding:8px; padding-left:6px; } } #mw-panel-toc-list{ margin-top:6px; } #vector-toc-pinned-container .vector-toc::after{ display:none; } .vector-toc .vector-toc-text{ padding: 3px 0 !important; } button.cdx-button{ z-index:1; } .vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ padding-bottom:3px; margin-bottom:-1px; } .vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{ max-height:37px; line-height:1.4em; } .mw-diff-table-prefix{ max-width:calc( 100% - 2em ); } .vector-column-start{ border-top:0; margin-top:0; } html.vector-feature-page-tools-pinned-enabled .vector-column-end, html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{ margin-top:0; margin-left:-1px; border: 1px solid #c8ccd1; border-top:0; padding-top:2px; } .vector-column-start .vector-sticky-pinned-container{ margin-left:0; } .vector-header-container .mw-header{ max-width:none; min-width:auto; } .vector-header-container{ padding-left:0; padding-right:0; } .vector-header-container .mw-header{ padding-left:1.5rem; padding-right:1.5rem; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{ margin-right:0; } html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{ padding-left:15px; } .vector-pinned-container{ padding: 16px 8px; padding-top:5px; padding-bottom:0; } .vector-dropdown .vector-dropdown-content{ padding-right:4px; padding-bottom:0; /*width:800px;*/ } .vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{ padding-left:12px } .vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{ padding-left:4px; padding-bottom:8px; } .vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{ padding-left:4px; } .client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{ /*max-width:200px;*/ } .mw-header{ grid-template: auto / 15em minmax(0,1fr); grid-template-areas:'headerStart headerEnd'; } #p-navigation.mw-portlet-navigation{ margin-top:0px; } .vector-menu.mw-portlet:not(.mw-portlet-navigation){ margin-top:4px; } .vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{ width:unset !important; } html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{ border-bottom:1px solid black; } html.skin-theme-clientpref-night > body ul.redirectText > li{ background-color:white !important; } html.skin-theme-clientpref-night > body ul.redirectText > li a{ background-color:black !important; color:white !important; } html.skin-theme-clientpref-night > body .mw-revslider-revision{ background-color:white !important; z-index:2; } html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{ border-color:none; color:white; background-color:unset; border-color:unset; } html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{ background: var(--background-color-content-removed,#ffe49c); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange, html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body .imeselector{ background: var(--background-color-content-added,#a3d3ff); filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body, html.skin-theme-clientpref-night > body > .mw-page-container, html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText), html.skin-theme-clientpref-night > body > .vector-header-container, html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog, html.skin-theme-clientpref-night > body > div.ui-dialog *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{ background-image:unset !important; background-color:black !important; } html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{ filter:invert(100%) grayscale(100%); background-color:transparent !important; } html.skin-theme-clientpref-night > body > #mw-teleport-target{ filter:grayscale(100%); } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"], html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{ background-color:transparent !important; color:unset !important; background-color:unset !important; } html.skin-theme-clientpref-night > body > .mw-page-container .imeselector, html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img, html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{ filter:invert(100%) grayscale(100%) !important; background-color:transparent !important; } html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output, html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText), html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{ z-index:0 !important; position:relative !important; } html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover, html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover, html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{ background-color:black !important; color:white !important; border-color:white !important; z-index:1 !important; position:relative !important; } html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{ z-index:1; position:relative; } html.skin-theme-clientpref-night > body .mw-footer-container, html.skin-theme-clientpref-night > body .mw-footer-container *:not(img), html.skin-theme-clientpref-night > body form.mw-editform .editButtons, html.skin-theme-clientpref-night > body form.mw-editform .editButtons *, html.skin-theme-clientpref-night > body .vector-menu-heading, html.skin-theme-clientpref-night > body .vector-menu-heading *, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu, html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{ color:white !important; background-color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body > div.uls-menu, html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon), html.skin-theme-clientpref-night > body > .language-settings-dialog, html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){ color:white; background-color:black; border-color:white; filter:invert(0%); } html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{ background-color:transparent !important; filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{ background-color:transparent !important; border:0 !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button, html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{ background-color:white!important; color:black !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){ background-color:black!important; color:white !important; } html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{ background-color:transparent !important; } html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{ font-weight:bolder; } html.skin-theme-clientpref-night > body::selection, html.skin-theme-clientpref-night > body *::selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body::-moz-selection html.skin-theme-clientpref-night > body *::-moz-selection{ background-color:white !important; color:black !important; border-color:white !important; } html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection, html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{ background-color:dimgray !important; color:black !important; border-color:white !important; filter:grayscale(100%); } html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *, html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{ background-color:black !important; color:white !important; border-color:white !important; } html.skin-theme-clientpref-night > body hr, html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{ filter:invert(100%) grayscale(100%); } html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons, html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{ color:white !important; background-color:black !important; border:0 !important; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{ color:white; background-color:black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{ background-color:unset; } html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{ font-weight:bolder; } html.skin-theme-clientpref-night > body span.link > a, html.skin-theme-clientpref-night > body span.link > a:link, html.skin-theme-clientpref-night > body span.link > a:visited, html.skin-theme-clientpref-night > body span.link > a:hover, html.skin-theme-clientpref-night > body span.link > a:active{ color:white; background-color:black; border-color:none; font-weight:bold; } html.skin-theme-clientpref-night > body img.mw-logo-icon{ background-color:white; color:black; border-color:black; } html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{ background-color: gray; mix-blend-mode:unset; } html.skin-theme-clientpref-night > body .uls-language-actions-close, html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages, html.skin-theme-clientpref-night > body a.mw-logo img, html.skin-theme-clientpref-night > body span.vector-icon img{ filter:invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{ background-color:white; } html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{ background-color:black; } html.skin-theme-clientpref-night > body a.mw-logo{ background-color:black; } html.skin-theme-clientpref-night > body span.vector-icon{ background-color:white; } @media screen { html.skin-theme-clientpref-night span.tab > a.skin-invert, html.skin-theme-clientpref-night a.skin-invert.label, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{ color-scheme:unset !important; filter:none !important; } } @media screen { html.skin-theme-clientpref-night .skin-invert-image img, html.skin-theme-clientpref-night .skin-invert.label::after, html.skin-theme-clientpref-night .skin-invert.current::before, html.skin-theme-clientpref-night .oo-ui-iconElement-icon, html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before, html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow, html.skin-theme-clientpref-night input[type="checkbox"]{ color-scheme: light !important; filter: invert(100%) grayscale(100%) !important; } html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon, html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{ filter:grayscale(100%) !important; } } html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget, html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{ filter:invert(0%) grayscale(100%); } div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger, html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay), html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form, html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *, html.skin-theme-clientpref-night > body form#wpFilterForm, html.skin-theme-clientpref-night > body form#wpFilterForm *, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor, html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container, html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-container, html.skin-theme-clientpref-night > body div.mw-rcfilters-container *, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top, html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon, html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *, html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator, html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button, html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{ background-color:unset !important; } html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{ background-color:black; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{ position:relative; box-shadow:none; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{ background-color:black; color:white; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos, html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{ background-color: white; color: black; border-color:white; } html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{ color:white; background-color:black; border-color:white; } @media not screen{ } html.vector-feature-custom-font-size-clientpref-0{ font-size:14px; } html.vector-feature-custom-font-size-clientpref-1{ font-size:16px; } html.vector-feature-custom-font-size-clientpref-2{ font-size:18px; } p3pjefxfgwporwgpv2ftwo94jwus2nv Wikibooks:Mechanizm MediaWiki 4 60755 540753 540653 2026-04-25T18:40:24Z Persino 2851 /* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */ 540753 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}. == Szablony == Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy. === Opis wizualny === * {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego. ** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}. === Opis tekstowy === * {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów. ** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}. == Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} == {{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}} * Moduły podstawowe ** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL. ** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}}, {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}}, {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} i {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu. *** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie. ** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich. ** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} ({{lr|Moduły/Pudełko/Tom I|Pudełko - Tom I}}, {{lr|Moduły/Pudełko/Tom II|Pudełko - Tom II}} i {{lr|Moduły/Pudełko/Tom III|Pudełko - Tom III}}) procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy. *** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące różnych nazw. *** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące {{m|Pudełko|Ogólne pudełko}}. *** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} - zestaw funkcji potrzebnych do budowy szablonu {{s|Szablonowy opis pudełka}}. ** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje. ** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach. ** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne. ** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron. ** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście. ** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych. * Moduły standardowe ** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami. ** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki. ** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki. ** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach. ** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony. * Specjalistyczne ** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów. ** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki. ** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu. {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!-- --></noinclude> pdor4l2of3rcvemxc6s7ndizlhcico6 540760 540753 2026-04-26T05:27:07Z Persino 2851 /* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */ 540760 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}. == Szablony == Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy. === Opis wizualny === * {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego. ** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}. === Opis tekstowy === * {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów. ** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}. == Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} == {{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}} * Moduły podstawowe ** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL. ** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}}, {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}}, {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} i {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu. *** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie. ** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich. ** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} ({{lr|Moduły/Pudełko/Tom I|Pudełko - Tom I}}, {{lr|Moduły/Pudełko/Tom II|Pudełko - Tom II}} i {{lr|Moduły/Pudełko/Tom III|Pudełko - Tom III}}) procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy. *** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące różnych nazw. *** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące {{m|Pudełko|Ogólne pudełko}}. *** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} zestawu funkcji potrzebnych do budowy szablonu {{s|Szablonowy opis pudełka}}. ** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje. ** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach. ** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne. ** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron. ** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście. ** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych. * Moduły standardowe ** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami. ** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki. ** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki. ** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach. ** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony. * Specjalistyczne ** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów. ** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki. ** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu. {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!-- --></noinclude> 3zorn42twzns994390v3sz06s6i60bs Wikibooks:Moduły 4 60758 540726 540656 2026-04-25T16:24:04Z Persino 2851 540726 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Moduły}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Strona przedstawia technologię modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a właściwie spis poszczególnych rozdziałów. Moduły wywoływa się przez, np. formę: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''}}}}, lub przez: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1|Parametr 2|...}}}}, albo: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1 {{=}} Wartość 1|Parametr 2 {{=}} Wartość 2|...}}}}, lub w postaci mieszanej: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|...|Parametr n {{=}} Wartość n|...|Parametr m|...}}}}, itp.. Parametry podobnie się pisze w wikikodzie i wywołuje jak szablony, tylko z tą różnicą, że w nazwie szablonu jest na samym początku: {{Code|#invoke:}}, co po nim następuje w niej nazwa modułu bez przedrostka {{Code|{{Np|Module|link=tak}}:}}, a pierwszy parametr, który nie jest liczony, jako zmienna, tylko następna z kolei, jest nazwą funkcji w tablicy eksportu. Wtedy jest wywoływany moduł, a w niej ściśle określona funkcja z parametrami jej ramki. Parametrami funkcji też mogą być parametry szablonu rodzica, w której wywoływana jest ta ona. == Moduły podstawowe == {{Kolumny|2| {{SpisTreści|Parametry}} {{SpisTreści|Html}} {{SpisTreści|Książkowe}} {{SpisTreści|Nazwy}} {{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I}} {{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II}} {{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III}} {{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV}} {{SpisTreści|Nazwy/Np}} {{SpisTreści|Pudełko}} {{SpisTreści|Pudełko/Tom I|3=Pudełko - Tom I}} {{SpisTreści|Pudełko/Tom II|3=Pudełko - Tom II}} {{SpisTreści|Pudełko/Pomocne|3=Pudełko - Pomocne}} {{SpisTreści|Pudełko/Potrzebne|3=Pudełko - Potrzebne}} {{SpisTreści|Pudełko/ParametryCechy|3=Pudełko - Parametry Cechy}} {{SpisTreści|Ramka}} {{SpisTreści|Specjalne}} {{SpisTreści|StronicowyParser}} {{SpisTreści|Szeregi}} {{SpisTreści|Szablonowe}} {{SpisTreści|Techniczne}} {{SpisTreści|Wiki}} }} == Moduły standardowe == {{Kolumny|2| {{SpisTreści|Kategorie}} {{SpisTreści|Linki}} {{SpisTreści|Łatki}} {{SpisTreści|Skrót}} {{SpisTreści|Strony}} {{SpisTreści|Sprawdź}} }} == Moduły specjalistyczne == {{Kolumny|2| {{SpisTreści|Tabela}} {{SpisTreści|Sekcja referencyjna}} {{SpisTreści|Plik}} {{SpisTreści|Licencja}} {{SpisTreści|Przypisy}} {{SpisTreści|Dopracować}} }} {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategorie | Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak | Pomoc - Problemy wywołań mechanizmu MediaWiki }}<!-- --></noinclude> cb2chu6wpllyt2ld4gkhr85ktejatou 540752 540726 2026-04-25T18:39:04Z Persino 2851 540752 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Moduły}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Strona przedstawia technologię modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a właściwie spis poszczególnych rozdziałów. Moduły wywoływa się przez, np. formę: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''}}}}, lub przez: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1|Parametr 2|...}}}}, albo: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1 {{=}} Wartość 1|Parametr 2 {{=}} Wartość 2|...}}}}, lub w postaci mieszanej: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|...|Parametr n {{=}} Wartość n|...|Parametr m|...}}}}, itp.. Parametry podobnie się pisze w wikikodzie i wywołuje jak szablony, tylko z tą różnicą, że w nazwie szablonu jest na samym początku: {{Code|#invoke:}}, co po nim następuje w niej nazwa modułu bez przedrostka {{Code|{{Np|Module|link=tak}}:}}, a pierwszy parametr, który nie jest liczony, jako zmienna, tylko następna z kolei, jest nazwą funkcji w tablicy eksportu. Wtedy jest wywoływany moduł, a w niej ściśle określona funkcja z parametrami jej ramki. Parametrami funkcji też mogą być parametry szablonu rodzica, w której wywoływana jest ta ona. == Moduły podstawowe == {{Kolumny|2| {{SpisTreści|Parametry}} {{SpisTreści|Html}} {{SpisTreści|Książkowe}} {{SpisTreści|Nazwy}} {{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I}} {{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II}} {{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III}} {{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV}} {{SpisTreści|Nazwy/Np}} {{SpisTreści|Pudełko}} {{SpisTreści|Pudełko/Tom I|3=Pudełko - Tom I}} {{SpisTreści|Pudełko/Tom II|3=Pudełko - Tom II}} {{SpisTreści|Pudełko/Tom III|3=Pudełko - Tom III}} {{SpisTreści|Pudełko/Pomocne|3=Pudełko - Pomocne}} {{SpisTreści|Pudełko/Potrzebne|3=Pudełko - Potrzebne}} {{SpisTreści|Pudełko/ParametryCechy|3=Pudełko - Parametry Cechy}} {{SpisTreści|Ramka}} {{SpisTreści|Specjalne}} {{SpisTreści|StronicowyParser}} {{SpisTreści|Szeregi}} {{SpisTreści|Szablonowe}} {{SpisTreści|Techniczne}} {{SpisTreści|Wiki}} }} == Moduły standardowe == {{Kolumny|2| {{SpisTreści|Kategorie}} {{SpisTreści|Linki}} {{SpisTreści|Łatki}} {{SpisTreści|Skrót}} {{SpisTreści|Strony}} {{SpisTreści|Sprawdź}} }} == Moduły specjalistyczne == {{Kolumny|2| {{SpisTreści|Tabela}} {{SpisTreści|Sekcja referencyjna}} {{SpisTreści|Plik}} {{SpisTreści|Licencja}} {{SpisTreści|Przypisy}} {{SpisTreści|Dopracować}} }} {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategorie | Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak | Pomoc - Problemy wywołań mechanizmu MediaWiki }}<!-- --></noinclude> 996vlet73udsuulhttakbpc1plbcx3u Wikipedysta:Persino/brudnopis11 2 62939 540765 540542 2026-04-26T06:49:33Z Persino 2851 540765 wikitext text/x-wiki {{Nowiki|{{Link wewnętrzny|strona=Pomoc:Spis treści|uri=tak}}}} ---- {{Nowiki|{{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}}}} ---- {{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}} ---- {{WydobądźLinki|{{lg|Pomoc%3ASpis%20tre%C5%9Bci|uri=tak}}}} {{PobierzNumerArtykułu|Muzyka|dane=3|poziomowo=tak|nagłówek=tak|bez automatu=|nazwa przestrzeni nazw=(main)|nazwa jednostki=Estoński/Muzyka}} --- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Szablony edycji - błędy wywołań}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do obiektów}}}} ---- {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brak licencji, na stronach głównych, publikacji}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Brakujące spisy treści, dołączonych do stron, stron w innych książkach}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z dołączonymi innymi stronami, w książkach, z obiektami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony z wypowiedzeniami ze złymi uchwytami}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Strony ze złymi uchwytami do nagłówków}}}} {{Nowiki|{{Kategoria|Szablony, tworzące linki, do sprawdzenia|nazwa jednostki=Artykusły2 dla dzieci2, ze złymi uchwytami do nagłówków}}}} {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=}}}} {{Nowiki|{{lpg|Stołeczne Terytorium Islamabadu|a=tak}}}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}} ---- {{#invoke:Pudełko|Typ jednostki|typ jednostki=podręcznik dyskusji|dyskusja typu jednostki=}} 2bgdgs2u4fum8u606lzggno31511pyl Zioła i przyprawy 0 63445 540739 540547 2026-04-25T17:34:09Z EdytaT 2664 540739 wikitext text/x-wiki {{status|-25%|Kulinaria|Zielarstwo}} {{Rozdział|Podręcznik|Zioła i przyprawy}} <small>< [[Zioła i przyprawy/Okładka|Okładka]]</small> {{FormularzWejścia|typ=search|szerokość=40|przestrzenie=(Główna)**|przedrostek=Zioła i przyprawy|szukaj=Szukaj|przerwa=no|zastępczy=Wyszukaj}} == Spis treści == === Zioła i przyprawy === # [[Zioła i przyprawy/Kolendra|Kolendra]] # [[Zioła i przyprawy/Krwiściąg|Krwiściąg]] # [[Zioła i przyprawy/Liść laurowy|Liść laurowy]] === Kompozycje przyprawowe === # [[Zioła i przyprawy/Bouquet garni|Bouquet garni]] # [[Zioła i przyprawy/Curry|Curry]] # [[Zioła i przyprawy/Swańska sól|Swańska sól]] # [[Zioła i przyprawy/Zioła do zielonego sosu frankfurckiego|Zioła do zielonego sosu frankfurckiego]] # [[Zioła i przyprawy/Zioła prowansalskie|Zioła prowansalskie]] === Przyprawianie zup === ==== Barszcz ==== * Jako podstawowe przyprawy do klasycznego barszczu czerwonego zaraz na początku gotowania daj [[Zioła i przyprawy/Liść laurowy|liść laurowy]], [[Zioła i przyprawy/Ziele angielskie|ziele angielskie]] i [[Zioła i przyprawy/Pieprz czarny|czarny pieprz]] w ziarnach. * Kilka [[Zioła i przyprawy/Suszone grzyby|suszonych grzybów]] nada głębszy smak. * [[Zioła i przyprawy/Majeranek|Majeranek]] dodaj pod koniec gotowania, by nie zrobił się gorzki. * [[Zioła i przyprawy/Cukier|Szczypta cukru]], trochę [[Zioła i przyprawy/Miód|miodu]] wzbogacą smak. * Charakterystyczną kwaskowatość otrzymasz dodając trochę kiszonych buraków albo [[Zioła i przyprawy/Ocet|octu jabłkowego]] lub odrobiny soku z [[Zioła i przyprawy/Jabłko|jabłka]] lub [[Zioła i przyprawy/Cytryna|cytryny]]. Zakwaszaj na koniec gotowania, po odcedzeniu warzyw, by barszcz nie stracił koloru. * Jeżeli lubisz, to możesz dodać [[Zioła i przyprawy/Lubczyk|lubczyk]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Kminek|kminek]], a odrobina [[Zioła i przyprawy/Chili|chili]] zaostrzy smak. == [[Zioła i przyprawy/Słowniczek|Słowniczek]] == == [[Zioła i przyprawy/Bibliografia|Bibliografia]] == 28okpgjcor9too56nhaddy2d0cz3kk4 Zioła i przyprawy/Kolendra 0 63447 540768 540036 2026-04-26T07:17:34Z EdytaT 2664 540768 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Kolendra}} [[Plik:A scene of Coriander leaves.JPG|thumb|Listki]] [[Plik:Flor de Cilantro Mexicano.jpg|thumb|Kwiaty z ziarnami]] [[Plik:Koriander (Coriandrum sativum) Paste im Glas--Josef Schlaghecken.jpg|thumb|Pasta z kolendry]] [[Plik:Coriander seeds.jpg|thumb|Ziarna]] {{wikipedia|Kolendra}} {{wikisłownik|kolendra}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Kolendra siewna|uprawy kolendry}} == Kolendra == Prawdziwa kolendra jest stosowana głównie w potrawach azjatyckich lub latynoamerykańskich, np. w zupach, gulaszach czy sałatkach – niezależnie od tego, czy są to dania wegetariańskie, z rybą czy mięsem. Pod względem smaku listki i nasiona bardzo się od siebie różnią. == Listki kolendry == * Zarówno świeże jak i suszone listki kolendry dla jednych smakują świeżością krystalicznej wody z górskiego strumienia, a dla innych mają smak mydła. Jeśli przypadkowo dodałeś jej za dużo do gotowania, możesz zneutralizować jej smak gotując potrawę nieco dłużej. * Świeżą kolendrę najlepiej dodać do potrawy dopiero pod koniec gotowania. * Przybliżonym zamiennikiem listków kolendry może być mieszanka [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Koper|kopru]] i [[Zioła i przyprawy/Estragon|estragonu]]. === Potrawy === * zupy * gulasze * sałatki == Nasiona (owoce) kolendry == * Nasiona kolendry mają cytrusowy smak z cierpką świeżością. * Dobrze znoszą wysoką temperaturę i nabierają intensywniejszego smaku, jeśli wcześniej zostaną podprażone na oleju. * Są łatwe w obróbce. Można je spożywać suszone, dodając je w całości do potraw lub wcześniej mieląc lub rozgniatając w moździerzu. * Stosuje się je również postaci proszku do dań na ciepło i na zimno. * Przybliżonym zamiennikiem nasion kolendry mogą być nasiona [[Zioła i przyprawy/Koper włoski|kopru włoskiego]] lub [[Zioła i przyprawy/Kumin|kuminu]]. === Potrawy === * zupy * gulasze * wypieki świąteczne * przyprawa do pieczywa * Kolendra jest jednym z podstawowych składników mieszanki [[Zioła i przyprawy/Curry|curry]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> oescq82gpirvqcdatp3wp40gkbzlqfa 540787 540768 2026-04-26T09:08:42Z EdytaT 2664 /* Listki kolendry */ 540787 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Kolendra}} [[Plik:A scene of Coriander leaves.JPG|thumb|Listki]] [[Plik:Flor de Cilantro Mexicano.jpg|thumb|Kwiaty z ziarnami]] [[Plik:Koriander (Coriandrum sativum) Paste im Glas--Josef Schlaghecken.jpg|thumb|Pasta z kolendry]] [[Plik:Coriander seeds.jpg|thumb|Ziarna]] {{wikipedia|Kolendra}} {{wikisłownik|kolendra}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Kolendra siewna|uprawy kolendry}} == Kolendra == Prawdziwa kolendra jest stosowana głównie w potrawach azjatyckich lub latynoamerykańskich, np. w zupach, gulaszach czy sałatkach – niezależnie od tego, czy są to dania wegetariańskie, z rybą czy mięsem. Pod względem smaku listki i nasiona bardzo się od siebie różnią. == Listki kolendry == * Zarówno świeże jak i suszone listki kolendry dla jednych smakują świeżością krystalicznej wody z górskiego strumienia, a dla innych mają smak mydła. * Mają delikatny, lekko słodkawy aromat. * Jeśli przypadkowo dodałeś jej za dużo do gotowania, możesz zneutralizować jej smak gotując potrawę nieco dłużej. * Świeżą kolendrę najlepiej dodać do potrawy dopiero pod koniec gotowania. * Przybliżonym zamiennikiem listków kolendry może być mieszanka [[Zioła i przyprawy/Pietruszka|pietruszki]], [[Zioła i przyprawy/Koper|kopru]] i [[Zioła i przyprawy/Estragon|estragonu]]. === Potrawy === * zupy * gulasze * sałatki == Nasiona (owoce) kolendry == * Nasiona kolendry mają cytrusowy smak z cierpką świeżością. * Dobrze znoszą wysoką temperaturę i nabierają intensywniejszego smaku, jeśli wcześniej zostaną podprażone na oleju. * Są łatwe w obróbce. Można je spożywać suszone, dodając je w całości do potraw lub wcześniej mieląc lub rozgniatając w moździerzu. * Stosuje się je również postaci proszku do dań na ciepło i na zimno. * Przybliżonym zamiennikiem nasion kolendry mogą być nasiona [[Zioła i przyprawy/Koper włoski|kopru włoskiego]] lub [[Zioła i przyprawy/Kumin|kuminu]]. === Potrawy === * zupy * gulasze * wypieki świąteczne * przyprawa do pieczywa * Kolendra jest jednym z podstawowych składników mieszanki [[Zioła i przyprawy/Curry|curry]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> h9n6pqdbl1e75jwoh1h494m7ux4locz Wikibooks:Moduły/Pudełko/Tom I 4 63479 540675 540672 2026-04-25T12:07:42Z Persino 2851 540675 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2lvs4obxmasih9iokdk83y4ail9g5tn 540677 540675 2026-04-25T12:13:27Z Persino 2851 540677 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qsp9zonrtq8o7ii5r66atv10u2y23iu 540678 540677 2026-04-25T12:21:18Z Persino 2851 /* Funkcje nazw przestrzeni nazw drugiej wersji */ 540678 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kztwu1c3lxaz7kghwg0id5e4jv1a874 540679 540678 2026-04-25T12:22:31Z Persino 2851 /* Funkcje nazw przestrzeni nazw trzeciej wersji */ 540679 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 079v2venh4zwnto3b1c21il9jg1ehne 540684 540679 2026-04-25T13:03:13Z Persino 2851 540684 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 94fraga1hh40z8eih2wifhrpto8ap4f 540685 540684 2026-04-25T13:06:46Z Persino 2851 540685 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> emo1bnwlg56xopxb9b8syhlr2twgpc0 540690 540685 2026-04-25T13:23:16Z Persino 2851 540690 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> p2t8jrri4vla5li55ncowz32i3g10sm 540730 540690 2026-04-25T16:48:35Z Persino 2851 /* Funkcje nazw przestrzeni nazw */ 540730 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> eyvojee2yxw4l0wo368twof8gi5buuf 540731 540730 2026-04-25T16:54:17Z Persino 2851 /* Funkcje nazw przestrzeni nazw trzeciej wersji */ 540731 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nhe3v9tkfnhlpxq99ovk69iehvp4slb 540732 540731 2026-04-25T16:54:48Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw 3"](frame,...}} */ 540732 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6kzbprbi6ckkpo2ekanldll0lcpg13i 540734 540732 2026-04-25T17:06:25Z Persino 2851 540734 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tu97ntm3078se0glbch1cv96e7ev1cd 540735 540734 2026-04-25T17:19:12Z Persino 2851 540735 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 256cggpmbsa0oextlei7g7pf0hc1hxj 540736 540735 2026-04-25T17:20:16Z Persino 2851 540736 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}}, i te z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> p3w4e7bx2i9my747kcxuxy3xfy86h9k 540737 540736 2026-04-25T17:26:08Z Persino 2851 540737 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lc6mn7ttix46wdk2u2hkexrw634e4r7 540738 540737 2026-04-25T17:30:12Z Persino 2851 540738 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rfl1h8tzmp15tynkvmke0j0qlw3x6dr 540741 540738 2026-04-25T17:37:28Z Persino 2851 /* Funkcje nazw jednostki */ 540741 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2mr0n1m4cogr13iy37a92rfosx2bvg6 540742 540741 2026-04-25T17:38:12Z Persino 2851 /* Funkcje nazw jednostki drugiej wersji */ 540742 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qrqjqeygdxqo5xp16onsux8yop9wdx9 540746 540742 2026-04-25T17:46:53Z Persino 2851 540746 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5nib3n15xj1hi2qx6zs35z81ty9lg1n 540747 540746 2026-04-25T17:51:22Z Persino 2851 /* Funkcje nazw jednostki trzeciej wersji */ 540747 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lrbnh0vg6in17bz9yjdib777x53i6zk 540748 540747 2026-04-25T18:01:41Z Persino 2851 540748 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s1l1pgh9d4c880izvhn1e8cc7d1im4i 540774 540748 2026-04-26T07:51:44Z Persino 2851 540774 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych i jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s97mmik43db11j7zwkzp72scrv2f40b 540777 540774 2026-04-26T08:07:10Z Persino 2851 540777 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> njrfrvudbqs8o7tr8eq6opbup0tn99n 540778 540777 2026-04-26T08:17:09Z Persino 2851 /* Funkcje nazw jednostki trzeciej wersji */ 540778 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 527xh4sc394hr3qsxa46pw3m1sjrl2a 540780 540778 2026-04-26T08:26:08Z Persino 2851 540780 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fqp5nuxtdg91dw5n4ykyran9urjqn5m 540781 540780 2026-04-26T08:40:53Z Persino 2851 540781 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 16dqux69bq32cx56jpxg5f8b9jntdu5 540783 540781 2026-04-26T08:57:24Z Persino 2851 540783 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} , tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ei338fm2i4fqxwbi9ucxumhzf3k9yzz 540784 540783 2026-04-26T08:59:15Z Persino 2851 /* Funkcje nazw jednostki trzeciej wersji */ 540784 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} , tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nysy5x3s0394n3ep0ahadw2t3c3jaao 540789 540784 2026-04-26T09:37:18Z Persino 2851 540789 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany, by nie było, a jeśli nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Dyskusja modułu"; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez typ jednostki jest zamieniony na nazwę przestrzeni przedmiotową, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a jeśli nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="Moduł"; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni dyskusji, zamiast przedmiotowej, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, czy dyskusji ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na przedmiotową, a jeżeli jest już taka, to żadnej zamiany nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskusja szablonu:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Dyskusja szablonu:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw przedmiotowej. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon}}}}, nazwa domyślna zostanie zamieniona na dyskusji, a jeżeli jest już taka, to nie ma takiej zamiany, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale dyskusji projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Szablon:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki wskazuje na przestrzeń nazw główną, wtedy się liczą parametry nazw jednostek. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon}}}}, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to brany jest ten element, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|Nazwa przestrzeni nazw 3}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie przedmiotowe lub dyskusji, ale można lub nie użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna,jest to numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> <!-- wynik pusty --> <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nazw główna, jest ciągiem pustym: ""; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|#p["Przedmiotowy typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzeni przedmiotowe, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę dyskusji nazwy przestrzenie nazw, czyli nie przedmiotowej, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a przedmiotową, nie dyskusji, przekształca się na dyskusji jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zwiększa się o numer więcej), według, i nie zawsze tylko, podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. W tej funkcji trzeba też podawać parametry nazwy jednostek {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},..., lub podane w postaci parametrów numerowanych: {{Code|1}}, {{Code|2}},..., dla tego {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}, za pomocą, którego uzyskujemy odpowiedni parametr bazowy lub numerkowy. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne lub ewentualnie z tych jednostek mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon}}}}, nazwa domyślna zostatnie zamieniona na dyskusji, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}}, {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, {{Code|nazwa jednostki 3}},... - nazwy jednostek dla pozycji bazowej i numerkowej, te parametry maja odpowiedniki, nieobecne nigdy w parametrach w ramce dziecka, w parametrach numerkowych, w tym {{Code|cel}} {{=}} {{Code|1}}, a te parametry: {{Code|1}} {{=}} {{Code|nazwa jednostki 1}}, {{Code|2}} {{=}} {{Code|nazwa jednostki 2}}, {{Code|3}} {{=}} {{Code|nazwa jednostki 3}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw=|nazwa przestrzeni nazw i=|nazwa jednostki=Szablon:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 1=Szablon|nazwa przestrzeni nazw i=|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W pierwszym wywołaniu {{Code|nazwa przestrzeni nazw}} jest puste, ale dla tego bazowego (bez numerka) szukamy przestrzeni nazw, a więc ta nazwa jest ostateczna. ---- W drugim wywołaniu w dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, ale wtedy dla tego numerkowego liczy się to ogólne z {{Code| i}}, a ponieważ ta nazwa jest pusta, więc będziemy liczyli nazwę przestrzeni nazw z {{Code|nazwa jednostki 2}}. Odpowiadająca powyższemu kodowi, powiedzmy wikikod, według ich zawartości, przedstawia się: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw 3}} ---- {{#invoke:Pudełko|Nazwa przestrzeni nazw 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw=""; --> <!-- Czyli wynik: --> Dyskusja <!-- Widzimy, że wygenerowała się: nazwa przestrzeni nazw, którą jest przestrzeń nazw niegłówna, jest ciągiem niepustym; --> ---- <!-- Ale nie "nazwa przestrzeni nazw 2", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 2=nazwa przestrzeni nazw i="", a nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń nieprogramowa, ale projektu, wychodząca z nazwy jednostek w tym przypadku z "nazwa jednostki 2"; --> </syntaxhighlight> Dla parametrów numerkowych nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw 2}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Tytaj jest używana jest zmienna {{Code|nazwa jednostki 2}} do wygenerowania ostatecznego wyniku, bo jak można zauważyć, parametry przestrzenne wskazują na przestrzeń główną, a nazwy jednostek już nie. Dla parametrów bazowych mamy zmienną {{Code|nazwa przestrzeni nazw}}, ona jest pusta, więc to zostanie wzięte do ostatecznego wyniku. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Szablon}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|typ jednostki 2{{=}}Podręcznik|nazwa jednostki 2{{=}}Szablon:Strona|numer jednostki{{=}}2}}}} (ale wtedy jest brana przestrzeń nazw z nazwy jednostki), ale o tym więcej w rozdziałach {{Code|{{sr|#p["Dyskusyjny typ jednostki 3"](frame,i)|p=Pudełko/Tom I}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko/Tom I}}”, one definiują dane przestrzenie dyskusji, ale można użyć parametru dyskusji typu jednostki z obojętnie jaką wartością niepustą, czy pustą, czy nawet jej nie podamy, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Jeżeli typ jednostki bazowy wskazuje na przestrzeń nazw główną, wtedy się nie liczą parametry nazw jednostek, a w przypadku numerkowego, wtedy się liczy. Typ jednostki nie ma takiej samej wartości dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma lub parametry przestrzenne wskazują na przestrzeń główną, i nie ma nazwy jednostki, to generowane są nazwy tej funkcji na podstawie aktualnej strony. == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, podaną w parametrach z: {{Code|nazwa jednostki}} dla tego bazowego, a dla numerkowego: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerkowanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},... Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja pisze przedmiotową nazwę jednostki na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja szablonu|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} , tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja pisze nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona <!-- nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja pisze nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach bazowych z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, podawane tylko w parametrach szablonu rodzica ramki. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających dla parametrów numerkowych. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni, chociaż nie zawsze, tutaj ma znaczenie, bo bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona <!-- nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6j5zv9xb7dajemsuwf58ohs70skyjuv Zioła i przyprawy/Krwiściąg 0 63482 540689 540581 2026-04-25T13:20:39Z EdytaT 2664 540689 wikitext text/x-wiki c {{Podrozdział|[[Zioła i przyprawy]]|Krwiściąg}} [[Plik:Petite pimprenelle - Sanguisorba minor 02.jpg|thumb|Listki]] {{wikipedia|Krwiściąg}} {{wikisłownik|krwiściąg}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Krwiściąg|Krwiściąg}} {{Wikibooks|Napary/Krwiściąg|Krwiściąg}} == Krwiściąg mniejszy == {{wikipedia|Krwiściąg mniejszy}} {{wikisłownik|krwiściąg mniejszy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Krwiściąg mniejszy|Krwiściąg mniejszy}} {{Wikibooks|Napary/Krwiściąg mniejszy|Krwiściąg mniejszy}} * W dawnej Europie stosowany jako przyprawa, dzisiaj prawie zapomniany. * Jest [[Pszczelarstwo/Rośliny/Sanguisorba|rośliną pszczelarską]]. === Listki krwiściągu mniejszego === * Młode liście należy zbierać przed kwitnieniem. * Mają orzeźwiający smak podobny do ogórka z lekkim orzechowym posmakiem. * Przyprawiaj gotowe potrawy świeżymi listkami, nie gotuj ich, by nie straciły aromatu. === Potrawy === * zupy ziołowe * wiosenne sałatki * twarożek ziołowy * jedno z podstawowych ziół do [[Zioła i przyprawy/Zioła do zielonego sosu frankfurckiego|zielonego sosu frankfurckiego]] * ocet ziołowy * napoje orzeźwiające == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> qmamnsadbukr69eifmoo9b3yrzh2ny2 540691 540689 2026-04-25T13:31:06Z Persino 2851 540691 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Krwiściąg}} [[Plik:Petite pimprenelle - Sanguisorba minor 02.jpg|thumb|Listki]] {{wikipedia|Krwiściąg}} {{wikisłownik|krwiściąg}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Krwiściąg|Krwiściąg}} {{Wikibooks|Napary/Krwiściąg|Krwiściąg}} == Krwiściąg mniejszy == {{wikipedia|Krwiściąg mniejszy}} {{wikisłownik|krwiściąg mniejszy}} {{Wikibooks|Ekoogrodnictwo/Rośliny użytkowe/Krwiściąg mniejszy|Krwiściąg mniejszy}} {{Wikibooks|Napary/Krwiściąg mniejszy|Krwiściąg mniejszy}} * W dawnej Europie stosowany jako przyprawa, dzisiaj prawie zapomniany. * Jest [[Pszczelarstwo/Rośliny/Sanguisorba|rośliną pszczelarską]]. === Listki krwiściągu mniejszego === * Młode liście należy zbierać przed kwitnieniem. * Mają orzeźwiający smak podobny do ogórka z lekkim orzechowym posmakiem. * Przyprawiaj gotowe potrawy świeżymi listkami, nie gotuj ich, by nie straciły aromatu. === Potrawy === * zupy ziołowe * wiosenne sałatki * twarożek ziołowy * jedno z podstawowych ziół do [[Zioła i przyprawy/Zioła do zielonego sosu frankfurckiego|zielonego sosu frankfurckiego]] * ocet ziołowy * napoje orzeźwiające == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 8und29fiujozv7iw4nsa3yk77m991zk Wikibooks:Moduły/Pudełko/Tom II 4 63485 540673 540625 2026-04-25T12:01:43Z Persino 2851 540673 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale parametry szczególne mają większą wważność niż ich wersja ogólna. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale parametry szczególne mają większą wważność niż ich wersja ogólna. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o przeddmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> r076li3rhcscyj2k0oh5m8o9xrl5pjd 540674 540673 2026-04-25T12:07:37Z Persino 2851 540674 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą wważność niż ich ta wersja ogólna. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą wważność niż ich ta wersja ogólna. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o przeddmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e4jaw2vvj2bnik783lc7puule7ikgz7 540676 540674 2026-04-25T12:13:23Z Persino 2851 /* Funkcje pełnych nazw jednostki */ 540676 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o przeddmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oq8n3t9uzachl4nqf3mx0o7h4sp3zhm 540680 540676 2026-04-25T12:33:14Z Persino 2851 /* Funkcje pełnych nazw jednostki */ 540680 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o przeddmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6wzkhlcaqabjaf0qe6fta421ekdav26 540681 540680 2026-04-25T12:43:19Z Persino 2851 540681 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> okja75n57is83jmlvq5pasna9850prk 540682 540681 2026-04-25T12:46:28Z Persino 2851 /* Funkcje pełnych nazw jednostki */ 540682 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c2lsiv2uer9kncckfxlvpq4nj5dehj6 540683 540682 2026-04-25T12:53:44Z Persino 2851 540683 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, i tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tv3ctjn17q3ftq01j5flta5bgmsarc0 540686 540683 2026-04-25T13:07:18Z Persino 2851 540686 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 53i3end236xlb8ucxe1wolhrmdxihwl 540687 540686 2026-04-25T13:18:31Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} */ 540687 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9o2layusxe8ylvlmvq0129u8zrxu7wa 540688 540687 2026-04-25T13:18:57Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki"](frame,i)}} */ 540688 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4cdc2bkxn8j72hmuu9yoza91db99i34 540692 540688 2026-04-25T13:38:26Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} */ 540692 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fpem77b8o5xbdqsi2y9r1u8bpbnd3h7 540693 540692 2026-04-25T13:41:19Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} */ 540693 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fydo2x4tbo9yhnuznivwaws8r1wmmza 540694 540693 2026-04-25T13:52:26Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki"](frame,i)}} */ 540694 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dxuhrzwx4911b6md5eihdfqrx93xp0h 540695 540694 2026-04-25T13:52:55Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} */ 540695 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8294q0ktb8ul2gfbk0wa0m2t2ervnfc 540696 540695 2026-04-25T13:59:53Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} */ 540696 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kasia8mjadyofamnq986ygpnbe9pkk3 540697 540696 2026-04-25T14:04:40Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540697 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1vdywjwqdw1erkytc8ju9luom77rgav 540698 540697 2026-04-25T14:10:27Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540698 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> b6neng575tpqx89g1sduk1k17272opp 540699 540698 2026-04-25T14:10:53Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540699 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ipv60tbk1e9owv956kyglqixx3ly24j 540700 540699 2026-04-25T14:13:10Z Persino 2851 540700 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bmfnw1j0449lskp01e7g3j53ghjgmqo 540701 540700 2026-04-25T14:15:15Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540701 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c3v5qwy1an7sbrll63tv9yolqe5wh8q 540702 540701 2026-04-25T14:17:17Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540702 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> eyeejck8jhshieomvgt8r89kujb795d 540703 540702 2026-04-25T14:17:44Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540703 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1tr5b0ilg33nt4oz9jy7a1hjyxpakpl 540704 540703 2026-04-25T14:21:07Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} */ 540704 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> khkzgnrgz06gmpi8k40p814cp6r0puc 540705 540704 2026-04-25T14:24:28Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} */ 540705 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki dyskusji 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki dyskusji 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4ogsb0hhxa2xs8a5ybid7l3idkagw0x 540706 540705 2026-04-25T14:25:59Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} */ 540706 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6doad4ra6l445mln1fvcnl0fgia1mvg 540707 540706 2026-04-25T14:40:10Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} */ 540707 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 67liglajkwxbwsdf9s4jb0mqq3mxhm6 540708 540707 2026-04-25T14:42:31Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} */ 540708 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> deynipegj8i0r62lmplniazai9spiuz 540709 540708 2026-04-25T14:44:19Z Persino 2851 540709 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jysmh7g4uvogys3rjcvyy934272xen2 540710 540709 2026-04-25T14:51:54Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} */ 540710 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> isus4msiswysprzo8oabfjw8grmrkj3 540711 540710 2026-04-25T15:00:07Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} */ 540711 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotową jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ag2rlaw3csn8r9cfaf3zdzi57c9vxpb 540712 540711 2026-04-25T15:02:05Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} */ 540712 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotową jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> t4qkcl3afjj3ln1tsfyuh0lvkh38lqu 540713 540712 2026-04-25T15:03:20Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} */ 540713 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotową jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bbymtsk9vux0hm2nq8b4407kohv7zek 540714 540713 2026-04-25T15:10:40Z Persino 2851 /* {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} */ 540714 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q4jb5iq2w0zpvtptt0vyquvluzwe2pf 540715 540714 2026-04-25T15:13:09Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} */ 540715 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3thxo242bmhjap2lvzgb9qng1hwpxbp 540721 540715 2026-04-25T15:53:56Z Persino 2851 /* Funkcje pełnych nazw jednostki trzeciej wersji */ 540721 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 59u9ic2z95ygczk64scv0gu24jlrnfs 540722 540721 2026-04-25T15:54:23Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} */ 540722 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0bap1qga3srg6tf9f1k68mdric39p03 540723 540722 2026-04-25T16:05:50Z Persino 2851 540723 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f437fg9ot4ivpjrbk22ruowcwlx0pmx 540724 540723 2026-04-25T16:06:55Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki"](frame,i)}} */ 540724 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki dyskusji"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0qfqhsdfxvujq73tgyjwilxe3aq4kwh 540725 540724 2026-04-25T16:07:54Z Persino 2851 /* {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} */ 540725 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z:{{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> h2htl1wnnqdysogwm1p1whbvkiqi0s0 540733 540725 2026-04-25T17:04:44Z Persino 2851 540733 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gh0ge20ft2v9xrouj4snhyci9t22qos 540743 540733 2026-04-25T17:40:31Z Persino 2851 540743 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylo w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0p0famctzmpwg24nt0s399u1i7jhthp 540744 540743 2026-04-25T17:42:59Z Persino 2851 540744 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2ahivxwm7j1w0rpvxysul81o8e2l4cw 540745 540744 2026-04-25T17:45:54Z Persino 2851 540745 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dj4x37s7kh0hrvbk3nulwt2anwxvxa3 540750 540745 2026-04-25T18:35:35Z Persino 2851 540750 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0ti55rc6ouw3aixkanlnuegnxsyu9cg 540775 540750 2026-04-26T07:56:26Z Persino 2851 540775 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych i jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ib9avw20vt8wcg6xrlzk3uq6ckcyy32 540776 540775 2026-04-26T08:05:37Z Persino 2851 540776 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0ilmmpweaywgh434zeriu0g2dk5e079 540779 540776 2026-04-26T08:20:44Z Persino 2851 540779 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ou1ebf8bx16d1by6ek85j69agyrfn7x 540782 540779 2026-04-26T08:45:08Z Persino 2851 540782 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mb6j5r0ui92dpr4ai8klmy3nmf8jppw 540788 540782 2026-04-26T09:32:58Z Persino 2851 540788 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Dyskusja szablonu:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja pisze pełne nazwy jednostek dyskusji w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: false, w której nazwa domyślna nie jest uwzględniana wtedy, oraz nil i true, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Szablon}}}}, nazwa domyślna zostatnie zamieniona na przedmiotową, a jeśli jest już taka, to takiej transfomacji nie ma, a jeśli nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, to wzięty jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}} Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy przedmiotowe jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwaa przestrzeni nazw="Szablon", nazwa jednostki="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona ---- <!-- nazwaa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Dyskusja Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Dyskusja Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja pisze pełną nazwy dyskusji jednostek w zależności od pozycji bazowej lub numerkowej, tzn. {{Parametr|numer jednostki}}, na podstawie tego bazowego podanego w parametrach z: {{Code|nazwa jednostki}}, lub tych z numerkiem {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane podawane tylko w parametrach rodzica ramki, tzn. {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}. One też są wyznaczane na podstawie {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}, ale te parametry szczególne mają większą ważność niż ich ta wersja ogólna, a jeżeli nie są one podane dla danej pozycji, to dla pozycji numerkowej liczy się ta wersja bazowa. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, dla tej części tej funkcji wyznaczania nazwy przestrzeni nazw, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej, * {{Code|nazwa jednostki}} - nazwa jednostki bazowa, może być z przestrzenią nazw, * {{Code|nazwa jednostki 1}}, {{Code|cel}} i {{Code|1}}, {{Code|nazwa jednostki 2}} i {{Code|2}}, {{Code|nazwa jednostki 2}} i {{Code|2}},..., * {{Code|typ jednostki}}, {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, {{Code|typ jednostki 3}},..., {{Code|typ jednostki i}} - typy jednostek, którym odpowiadają pewne przestrzenie przedmiotowe, dla pozycji bazowej, numerkowej i ogólnej, ** {{Code|dyskusja typu jednostki}}, {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typ jednostki 2}}, {{Code|dyskusja typ jednostki 3}},..., {{Code|dyskusja typ jednostki i}} - czy dany typ jednostki ma przedstawiać, jeśli niepusta, przestrzeń dyskusji dla pozycji bazowej, numerkowej i ogólnej. Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej plus tu wymienione, bez parametrów nienazwanych numerkowych i {{Code|cel}}, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw i nazwy jednostki. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu 1|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}} ---- {{Nazwa szablonu 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni i nazwy jednostki o numerze dwa, nazwa przestrzeni tutaj jest bez znaczenia, bo nie bierze udziału w wyznaczaniu nazwy jednostki: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3}} ---- {{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|numer jednostki=2}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie: <syntaxhighlight lang="mediawiki"> <!-- nazwa przestrzeni nazw="Szablon", nazwa jednostki="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona ---- <!-- nazwa przestrzeni nazw 2="Szablon", nazwa jednostki 2="Wikibooks:Strona"; --> <!-- Czyli wynik: --> Szablon:Wikibooks:Strona </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Wikibooks:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Wikibooks:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Wikibooks:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Wikibooks:Strona|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw i nazw jednostki, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> eko3f2bk9jldc6s6mkd6bbzdjbujtma Wikibooks:Moduły/Pudełko 4 63486 540716 540626 2026-04-25T15:16:40Z Persino 2851 540716 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzjów typów jednostek == === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0jqehz673jyzh5fm2vqg8fxd91bx9vj 540717 540716 2026-04-25T15:23:19Z Persino 2851 /* Opis rodzjów typów jednostek */ 540717 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dzels5yhfj4o4h162zek22erty3yxg0 540718 540717 2026-04-25T15:29:41Z Persino 2851 /* Opis rodzajów typów jednostek */ 540718 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis2}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ndt2ud6h2ap7l653izbugm5w05u15e8 540719 540718 2026-04-25T15:29:57Z Persino 2851 /* Opis rodzajów typów jednostek */ 540719 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gav5rgjmvicmaj3a35kdwsb4539menh 540720 540719 2026-04-25T15:31:55Z Persino 2851 /* Opis rodzajów typów jednostek */ 540720 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9g0oot4x9st9u7yovvmtzkbwikfi7md 540727 540720 2026-04-25T16:27:37Z Persino 2851 /* Spis treści */ 540727 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == ; Dokumentacja modułu {{Code|{{m|Pudełko}}}}{{Dk}} * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pudełko/Pomocne|3=Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Pudełko/Potrzebne|3=Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|Pudełko/ParametryCechy|3=Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9dal1hlr5wv4vv8swprdx1gq09jasj5 540728 540727 2026-04-25T16:28:13Z Persino 2851 /* Spis treści */ 540728 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pudełko/Pomocne|3=Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Pudełko/Potrzebne|3=Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|Pudełko/ParametryCechy|3=Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sofksf6lo74iuni001g2807tzhtsfjv 540729 540728 2026-04-25T16:30:43Z Persino 2851 /* Inne podmoduły */ 540729 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1xni0d56rzodg80ytx20wj9yoyvq80p 540751 540729 2026-04-25T18:36:42Z Persino 2851 /* Dokumentacja modułu {{Code|{{m|Pudełko}}}} */ 540751 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q2fcf146ryelwhh2urek6lhkzzl9lyc 540763 540751 2026-04-26T06:18:45Z Persino 2851 /* Zestawienie: */ 540763 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f7029192bb889oanivx3sjntbsmr7hh 540796 540763 2026-04-26T10:31:30Z Persino 2851 /* Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw */ 540796 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === * Pzestrzeń główna ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, w przestrzeni nazw {{Np|(main)|link=tak}}, * Przestrzeń projektów dla dzieci ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna ddla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fuz3y6ugf190vgo4uqdik0ao0fk4etv 540797 540796 2026-04-26T10:32:21Z Persino 2851 /* Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw */ 540797 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna ddla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m4by6nh5nuqht3nwckxnblot97h9q0z 540798 540797 2026-04-26T10:35:23Z Persino 2851 /* Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw */ 540798 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna ddla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw są tworzone. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3w74rp8iv5gvuyqat292xkx4tdj3yd0 540799 540798 2026-04-26T10:38:32Z Persino 2851 /* Strony dyskusji */ 540799 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna ddla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ias2f7gfd48ljrfoh75q8dguxc4kjm6 540800 540799 2026-04-26T10:39:14Z Persino 2851 540800 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ohe9dgducb7nr0pjn9q33cwf36z2a5m 540801 540800 2026-04-26T10:41:13Z Persino 2851 /* Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw */ 540801 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qa045ska9ivt1a0fh00elswuoxhw4wk 540802 540801 2026-04-26T10:42:18Z Persino 2851 /* Strony dyskusji */ 540802 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznikai jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0it4p0z2fqm2w1syjft3rt1tc0rmi2e 540803 540802 2026-04-26T10:54:55Z Persino 2851 /* Strony przedmiotowe */ 540803 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ldu2o4fbw880qhgpmsq4ohd1pv3zvpb 540804 540803 2026-04-26T11:00:33Z Persino 2851 /* Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} */ 540804 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. {{Code|dyskusja typu jednostki}} - dla pozycji np. bazowej z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> halaq4wctnd2sudvbvlyhpsgaldts9o 540805 540804 2026-04-26T11:01:42Z Persino 2851 /* Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} */ 540805 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. {{Code|dyskusja typu jednostki}} - dla pozycji np. bazowej z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej. === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> t53rg117i6xgtz9nn097also6ija5ee 540806 540805 2026-04-26T11:04:29Z Persino 2851 /* Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} */ 540806 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}, ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}, ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}} ** Podręczniki *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}} ** Strony niebrudnopisowe *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}, ** Strony niebrudnopisowe *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}} *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}, ** Strony podręcznikowe *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 308vn2m5uejnfrl4vdkuye1w93pkzwg 540807 540806 2026-04-26T11:06:29Z Persino 2851 /* Strony przedmiotowe */ 540807 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mu95t3roah6y8lvb9vkgynglg938qfv 540808 540807 2026-04-26T11:11:12Z Persino 2851 /* Parametry dodatkowe typów jednostek */ 540808 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7e9385d47268jzsrbxtv30el4cw6p95 540809 540808 2026-04-26T11:24:11Z Persino 2851 /* Parametry dodatkowe typów jednostek */ 540809 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}} oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6w10qmqyq7qa0xxcgy1janvr76cti8z 540810 540809 2026-04-26T11:25:25Z Persino 2851 /* Parametry dodatkowe typów jednostek */ 540810 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}} oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, a te numerki ozanczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i65z2v7uuhkisvq3k1ikl5cp7fcycq2 540811 540810 2026-04-26T11:33:15Z Persino 2851 /* Wprowadzenie */ 540811 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki ozanczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== == Spis treści == === Dokumentacja modułu {{Code|{{m|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje z których korzystają funkcje zdefiniowane w module {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jwkkffcokiumo5e9mtl4t097x9ardhg Zioła i przyprawy/Curry 0 63488 540740 2026-04-25T17:36:20Z EdytaT 2664 Utworzono nową stronę " {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude>" 540740 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> rognlbs99w2eh7lt1uw779jk094mog9 540769 540740 2026-04-26T07:18:17Z EdytaT 2664 540769 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się rożnych mieszanek. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Imbir|imbir]], [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kumin|kumin]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 514urnpvtlhz6nkfq4s73sjnenm3ln2 540770 540769 2026-04-26T07:23:47Z EdytaT 2664 540770 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] Curry powder in the spice-bazaar in Istanbul.jpgCurry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjska potrawa o nazwie curry. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa rowniez może być użyta. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Imbir|imbir]], [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kumin|kumin]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> mgj104qpzmgch9nr040xf2ho8hkrzdm 540771 540770 2026-04-26T07:35:55Z EdytaT 2664 540771 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] [[Plik:Curry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjska potrawa o nazwie curry. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa rowniez może być użyta. * W skład curry wchodzi nawet do 36 różnych roślin. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Imbir|imbir]], [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kumin|kumin]], [[Zioła i przyprawy/Kozieradka|kozieradka]]. * Ponadto często dodawane są : :* [[Zioła i przyprawy/Cynamon|cynamin]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Fenkuł|ziarna fenkułu]], [[Zioła i przyprawy/Kardamon|kardamon]], [[Zioła i przyprawy/Czosnek|czosnek]], [[Zioła i przyprawy/Galka muszkatołowa|gałka muszkatołowa]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> qft54ot85a3ai0o9tcvk46kg9j7g5y5 540772 540771 2026-04-26T07:36:12Z EdytaT 2664 540772 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] [[Plik:Curry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjska potrawa o nazwie curry. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa rowniez może być użyta. * W skład curry wchodzi nawet do 36 różnych roślin. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Imbir|imbir]], [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kumin|kumin]], [[Zioła i przyprawy/Kozieradka|kozieradka]]. * Ponadto często dodawane są : :* [[Zioła i przyprawy/Cynamon|cynamon]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Fenkuł|ziarna fenkułu]], [[Zioła i przyprawy/Kardamon|kardamon]], [[Zioła i przyprawy/Czosnek|czosnek]], [[Zioła i przyprawy/Galka muszkatołowa|gałka muszkatołowa]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> d7ijgccxgchyaqigkb152e16a1agy36 540773 540772 2026-04-26T07:36:35Z EdytaT 2664 540773 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] [[Plik:Curry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjska potrawa o nazwie curry. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa również może być użyta. * W skład curry wchodzi nawet do 36 różnych roślin. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Imbir|imbir]], [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]], [[Zioła i przyprawy/Kurkuma|kurkuma]], [[Zioła i przyprawy/Kumin|kumin]], [[Zioła i przyprawy/Kozieradka|kozieradka]]. * Ponadto często dodawane są : :* [[Zioła i przyprawy/Cynamon|cynamon]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Fenkuł|ziarna fenkułu]], [[Zioła i przyprawy/Kardamon|kardamon]], [[Zioła i przyprawy/Czosnek|czosnek]], [[Zioła i przyprawy/Galka muszkatołowa|gałka muszkatołowa]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> dg36vx3ct4fvpmjamnyx480u3fnzi2b 540785 540773 2026-04-26T09:06:15Z EdytaT 2664 540785 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] [[Plik:Curry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjska potrawa o nazwie curry. * Mieszanka curry zawiera azjatyckie aromaty, ale powstała w Wielkiej Brytanii. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa również może być użyta. * W skład curry wchodzi nawet do 36 różnych roślin. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Kurkuma|kurkuma]] (nadaje żółtego koloru), [[Zioła i przyprawy/Imbir|imbir]] (ostrość i świeżość), [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]] (delikatny, lekko słodkawy aromat), [[Zioła i przyprawy/Kumin|kumin]] (cierpka, nieco ziemistą nuta), [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Kozieradka|kozieradka]] (pikantny, lekko gorzki smak). * Ponadto często dodawane są : :* [[Zioła i przyprawy/Cynamon|cynamon]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Fenkuł|ziarna fenkułu]], [[Zioła i przyprawy/Kardamon|kardamon]], [[Zioła i przyprawy/Czosnek|czosnek]], [[Zioła i przyprawy/Galka muszkatołowa|gałka muszkatołowa]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> seed4mkn5z5z6tsnusgft0sik0c002p 540786 540785 2026-04-26T09:06:37Z EdytaT 2664 540786 wikitext text/x-wiki {{Podrozdział|[[Zioła i przyprawy]]|Curry}} [[Plik:Curry Powder.JPG|thumb|Składniki curry]] [[Plik:Curry powder in the spice-bazaar in Istanbul.jpg|thumb|Curry]] {{wikipedia|Curry}} {{wikisłownik|curry}} == Curry == * Przyprawy curry nie należy mylić z indyjską potrawą o nazwie curry. * Mieszanka curry zawiera azjatyckie aromaty, ale powstała w Wielkiej Brytanii. * Nie ma jednej recepty na curry jako przyprawy do potraw. W zależności od regionu, a także od samej potrawy używa się różnych mieszanek. * Dla doskonałego smaku curry ważnym jest, by składniki były świeżo mielone, ale gotowa przyprawa również może być użyta. * W skład curry wchodzi nawet do 36 różnych roślin. * Stałymi składnikami są z reguły: :* [[Zioła i przyprawy/Kurkuma|kurkuma]] (nadaje żółtego koloru), [[Zioła i przyprawy/Imbir|imbir]] (ostrość i świeżość), [[Zioła i przyprawy/Chili|chili]], [[Zioła i przyprawy/Kolendra|kolendra]] (delikatny, lekko słodkawy aromat), [[Zioła i przyprawy/Kumin|kumin]] (cierpka, nieco ziemistą nuta), [[Zioła i przyprawy/Pieprz|pieprz]], [[Zioła i przyprawy/Kozieradka|kozieradka]] (pikantny, lekko gorzki smak). * Ponadto często dodawane są : :* [[Zioła i przyprawy/Cynamon|cynamon]], [[Zioła i przyprawy/Goździki|goździki]], [[Zioła i przyprawy/Fenkuł|ziarna fenkułu]], [[Zioła i przyprawy/Kardamon|kardamon]], [[Zioła i przyprawy/Czosnek|czosnek]], [[Zioła i przyprawy/Galka muszkatołowa|gałka muszkatołowa]]. == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> p3dej4cv9ad36k7rwnvz8govyeakoay Wikibooks:Moduły/Pudełko/Tom III 4 63489 540749 2026-04-25T18:35:20Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Fu…" 540749 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} === == Funkcje typu jednostki wersji drugiej == === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} === == Funkcje typu jednostki wersji trzeciej == === {{Code|p["Typ jednostki 3"](frame,i)}} === === {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} === === {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1nz63dvc20uietyd3yp5dmec9io8int Wikijunior:Polska/Język polski 104 63490 540790 2026-04-26T09:59:25Z Igor123121 34732 utworzenie 540790 wikitext text/x-wiki Język polski jest językiem z grupy słowiańskiej, należącej do rodziny indoeuropejskiej. Jest językiem ojczystym ok. 45 milionów ludzi na świecie, z których ok. 38 mln mieszka w Polsce. Stanowi jeden z 24 oficjalnych języków Unii Europejskiej. Status języka urzędowego w Rzeczypospolitej Polskiej określa art. 27 Konstytucji RP z 1997 roku, a zasady jego stosowania w życiu publicznym reguluje ustawa z dnia 7 października 1999 r. o języku polskim. == Klasyfikacja językoznawcza i pismo == Język polski należy do grupy języków zachodniosłowiańskich, w której wyróżnia się podgrupę lechicką (obok języka kaszubskiego, łużyckiego i języków łużyckich). Jego najbliższymi krewnymi są języki czeski i słowacki. Język polski posługuje się alfabetem łacińskim, uzupełnionym o litery z diakrytykami (znakami graficznymi dodawanymi do liter), tworząc znaki: ą, ć, ę, ł, ń, ó, ś, ź, ż. Alfabet polski liczy 32 litery. Pierwszy pisany zabytek języka polskiego to zdanie z Kroniki Henryka z Hesji (Księga henrykowska) z 1270 roku: „Daj, ać ja pobruszę, a ty poczywaj". Najstarszym dłuższym tekstem są Kazania świętokrzyskie z przełomu XIII i XIV wieku. == Cechy charakterystyczne języka == Język polski cechuje się kilkoma właściwościami odróżniającymi go od wielu innych języków europejskich: * Fleksja – rozbudowany system odmiany wyrazów przez przypadki (7 przypadków), rodzaj (trzy rodzaje gramatyczne) i liczbę. Czyni to polszczyznę stosunkowo trudną dla obcokrajowców. * Akcent – stały, przeważnie paroksytoniczny (pada na przedostatnią sylabę wyrazu). * Bogactwo spółgłoskowe – język posiada spółgłoski typowe dla grupy słowiańskiej, m.in. sz, cz, dż, ź, ś. * Szyk wyrazów – względnie swobodny w zdaniu, choć preferowany jest szyk SVO (podmiot–orzeczenie–dopełnienie). == Status języka, ochrona i instytucje == Nadzór nad poprawnością i rozwojem języka polskiego sprawuje Rada Języka Polskiego przy Prezydium Polskiej Akademii Nauk, powołana ustawą z 1999 roku. Rada wydaje opinie o poprawności użycia języka w przestrzeni publicznej, opiniuje akty prawne dotyczące języka oraz ustala zasady ortografii i interpunkcji. Jej rozstrzygnięcia w zakresie pisowni są wiążące dla administracji i instytucji publicznych. Promowaniem języka i kultury polskiej za granicą zajmuje się Instytut Polski (sieć placówek Ministerstwa Spraw Zagranicznych) oraz Polska Fundacja Narodowa i samorząd nauczycielski. hq4ai6ssjs7n731b9oa9feuc2pe7qsq Wikijunior:Polska/Historia języka polskiego 104 63491 540791 2026-04-26T09:59:51Z Igor123121 34732 utworzenie 540791 wikitext text/x-wiki Język polski wykształcił się stopniowo z języka prasłowiańskiego, którym posługiwały się ludy słowiańskie zamieszkujące tereny Europy Środkowej i Wschodniej przed VI wiekiem n.e. Wyodrębnienie polszczyzny jako odrębnego języka trwało przez kilka stuleci i wiązało się ściśle z kształtowaniem się państwa i tożsamości narodowej. == Najstarszy okres: X–XVI wiek == Najwcześniejsze zachowane zabytki pisanego języka polskiego pochodzą z XIII–XIV wieku. Są to głównie teksty religijne i prawne, w których polskie wyrazy i zdania pojawiają się na tle łacińskich dokumentów. Do najważniejszych zabytków tej epoki należą: Bulla gnieźnieńska (1136) – łacińska kopia dokumentu papieskiego, zawierająca ok. 410 nazw geograficznych i imion polskich, Bogurodzica – najstarsza polska pieśń religijna, datowana na XII–XIV wiek, Kazania świętokrzyskie i Kazania gnieźnieńskie (XIII–XIV w.) – pierwsze dłuższe teksty prozatorskie w języku polskim, Psałterz floriański i Psałterz puławski (XIV–XV w.) – pierwsze przekłady ksiąg biblijnych na polszczyznę. Język polskich tekstów z tego okresu różnił się znacznie od współczesnej polszczyzny pod względem fonetyki, słownictwa i gramatyki. == Złoty Wiek: XVI wiek i kształtowanie się języka literackiego == Wiek XVI jest uznawany za złoty wiek języka polskiego. Wynalazek druku (Gutenberg, ok. 1450) upowszechnił piśmiennictwo, a Polska rozwijająca się w erze renesansu wytworzyła bogatą literaturę w języku narodowym. Kluczową rolę odegrała twórczość: Jana Kochanowskiego – poety, który podniósł polszczyznę do rangi języka literackiego na równi z łaciną i greką. Jego fraszki, pieśni i „Treny" ukształtowały normę gramatyczną i stylistyczną. Mikołaja Reja – pierwszego wielkiego pisarza piszącego wyłącznie po polsku, który twierdził, że „Polacy nie gęsi, iż swój język mają". Pierwsze drukarnie polskie (m.in. Hieronima Wietora w Krakowie) przyczyniły się do standaryzacji pisowni. W 1543 roku ukazało się dzieło Mikołaja Kopernika „De revolutionibus" – po łacinie, jednak jego korespondencja i środowisko naukowe posługiwały się już w dużym stopniu polszczyzną. == XVII–XIX wiek: Zapożyczenia i odrodzenie językowe == W XVII i XVIII wieku polszczyzna ulegała wpływom języków obcych. Do leksyki weszły liczne latynizmy (z języka łacińskiego, będącego językiem Kościoła i prawa) oraz galicyzmy (zapożyczenia z języka francuskiego, popularnego na dworach szlacheckich i królewskich). W XIX wieku, w obliczu zaborów i germanizacji (wprowadzania języka niemieckiego przez Prusy) oraz rusyfikacji (narzucania języka rosyjskiego przez Rosję), język polski stał się symbolem tożsamości narodowej. Działalność Komisji Edukacji Narodowej (1773) oraz pisarze epoki oświecenia (Ignacy Krasicki, Stanisław Staszic) dążyli do oczyszczenia i unowocześnienia polszczyzny. W tym okresie ukazały się pierwsze wielkie słowniki języka polskiego, w tym „Słownik języka polskiego" Samuela Lindego (1807–1814). rnam5rijiccfc9e2n9jb5wl6qw7dpgo 540792 540791 2026-04-26T10:00:10Z Igor123121 34732 540792 wikitext text/x-wiki Język polski wykształcił się stopniowo z języka prasłowiańskiego, którym posługiwały się ludy słowiańskie zamieszkujące tereny Europy Środkowej i Wschodniej przed VI wiekiem n.e. Wyodrębnienie polszczyzny jako odrębnego języka trwało przez kilka stuleci i wiązało się ściśle z kształtowaniem się państwa i tożsamości narodowej. == Najstarszy okres: X–XVI wiek == Najwcześniejsze zachowane zabytki pisanego języka polskiego pochodzą z XIII–XIV wieku. Są to głównie teksty religijne i prawne, w których polskie wyrazy i zdania pojawiają się na tle łacińskich dokumentów. Do najważniejszych zabytków tej epoki należą: * Bulla gnieźnieńska (1136) – łacińska kopia dokumentu papieskiego, zawierająca ok. 410 nazw geograficznych i imion polskich, * Bogurodzica – najstarsza polska pieśń religijna, datowana na XII–XIV wiek, * Kazania świętokrzyskie i Kazania gnieźnieńskie (XIII–XIV w.) – pierwsze dłuższe teksty prozatorskie w języku polskim, * Psałterz floriański i Psałterz puławski (XIV–XV w.) – pierwsze przekłady ksiąg biblijnych na polszczyznę. Język polskich tekstów z tego okresu różnił się znacznie od współczesnej polszczyzny pod względem fonetyki, słownictwa i gramatyki. == Złoty Wiek: XVI wiek i kształtowanie się języka literackiego == Wiek XVI jest uznawany za złoty wiek języka polskiego. Wynalazek druku (Gutenberg, ok. 1450) upowszechnił piśmiennictwo, a Polska rozwijająca się w erze renesansu wytworzyła bogatą literaturę w języku narodowym. Kluczową rolę odegrała twórczość: * Jana Kochanowskiego – poety, który podniósł polszczyznę do rangi języka literackiego na równi z łaciną i greką. Jego fraszki, pieśni i „Treny" ukształtowały normę gramatyczną i stylistyczną. * Mikołaja Reja – pierwszego wielkiego pisarza piszącego wyłącznie po polsku, który twierdził, że „Polacy nie gęsi, iż swój język mają". * Pierwsze drukarnie polskie (m.in. Hieronima Wietora w Krakowie) przyczyniły się do standaryzacji pisowni. W 1543 roku ukazało się dzieło Mikołaja Kopernika „De revolutionibus" – po łacinie, jednak jego korespondencja i środowisko naukowe posługiwały się już w dużym stopniu polszczyzną. == XVII–XIX wiek: Zapożyczenia i odrodzenie językowe == W XVII i XVIII wieku polszczyzna ulegała wpływom języków obcych. Do leksyki weszły liczne latynizmy (z języka łacińskiego, będącego językiem Kościoła i prawa) oraz galicyzmy (zapożyczenia z języka francuskiego, popularnego na dworach szlacheckich i królewskich). W XIX wieku, w obliczu zaborów i germanizacji (wprowadzania języka niemieckiego przez Prusy) oraz rusyfikacji (narzucania języka rosyjskiego przez Rosję), język polski stał się symbolem tożsamości narodowej. Działalność Komisji Edukacji Narodowej (1773) oraz pisarze epoki oświecenia (Ignacy Krasicki, Stanisław Staszic) dążyli do oczyszczenia i unowocześnienia polszczyzny. W tym okresie ukazały się pierwsze wielkie słowniki języka polskiego, w tym „Słownik języka polskiego" Samuela Lindego (1807–1814). 5jn4mrk7vcv514dnn52v1n7c6djmn8x 540793 540792 2026-04-26T10:00:24Z Igor123121 34732 /* Złoty Wiek: XVI wiek i kształtowanie się języka literackiego */ 540793 wikitext text/x-wiki Język polski wykształcił się stopniowo z języka prasłowiańskiego, którym posługiwały się ludy słowiańskie zamieszkujące tereny Europy Środkowej i Wschodniej przed VI wiekiem n.e. Wyodrębnienie polszczyzny jako odrębnego języka trwało przez kilka stuleci i wiązało się ściśle z kształtowaniem się państwa i tożsamości narodowej. == Najstarszy okres: X–XVI wiek == Najwcześniejsze zachowane zabytki pisanego języka polskiego pochodzą z XIII–XIV wieku. Są to głównie teksty religijne i prawne, w których polskie wyrazy i zdania pojawiają się na tle łacińskich dokumentów. Do najważniejszych zabytków tej epoki należą: * Bulla gnieźnieńska (1136) – łacińska kopia dokumentu papieskiego, zawierająca ok. 410 nazw geograficznych i imion polskich, * Bogurodzica – najstarsza polska pieśń religijna, datowana na XII–XIV wiek, * Kazania świętokrzyskie i Kazania gnieźnieńskie (XIII–XIV w.) – pierwsze dłuższe teksty prozatorskie w języku polskim, * Psałterz floriański i Psałterz puławski (XIV–XV w.) – pierwsze przekłady ksiąg biblijnych na polszczyznę. Język polskich tekstów z tego okresu różnił się znacznie od współczesnej polszczyzny pod względem fonetyki, słownictwa i gramatyki. == Złoty Wiek: XVI wiek i kształtowanie się języka literackiego == Wiek XVI jest uznawany za złoty wiek języka polskiego. Wynalazek druku (Gutenberg, ok. 1450) upowszechnił piśmiennictwo, a Polska rozwijająca się w erze renesansu wytworzyła bogatą literaturę w języku narodowym. Kluczową rolę odegrała twórczość: * Jana Kochanowskiego – poety, który podniósł polszczyznę do rangi języka literackiego na równi z łaciną i greką. Jego fraszki, pieśni i „Treny" ukształtowały normę gramatyczną i stylistyczną. * Mikołaja Reja – pierwszego wielkiego pisarza piszącego wyłącznie po polsku, który twierdził, że „Polacy nie gęsi, iż swój język mają". Pierwsze drukarnie polskie (m.in. Hieronima Wietora w Krakowie) przyczyniły się do standaryzacji pisowni. W 1543 roku ukazało się dzieło Mikołaja Kopernika „De revolutionibus" – po łacinie, jednak jego korespondencja i środowisko naukowe posługiwały się już w dużym stopniu polszczyzną. == XVII–XIX wiek: Zapożyczenia i odrodzenie językowe == W XVII i XVIII wieku polszczyzna ulegała wpływom języków obcych. Do leksyki weszły liczne latynizmy (z języka łacińskiego, będącego językiem Kościoła i prawa) oraz galicyzmy (zapożyczenia z języka francuskiego, popularnego na dworach szlacheckich i królewskich). W XIX wieku, w obliczu zaborów i germanizacji (wprowadzania języka niemieckiego przez Prusy) oraz rusyfikacji (narzucania języka rosyjskiego przez Rosję), język polski stał się symbolem tożsamości narodowej. Działalność Komisji Edukacji Narodowej (1773) oraz pisarze epoki oświecenia (Ignacy Krasicki, Stanisław Staszic) dążyli do oczyszczenia i unowocześnienia polszczyzny. W tym okresie ukazały się pierwsze wielkie słowniki języka polskiego, w tym „Słownik języka polskiego" Samuela Lindego (1807–1814). 9uge1ssk5i50gs1alevftoqz14y147o Wikijunior:Polska/Arcydzieła literatury polskiej 104 63492 540794 2026-04-26T10:00:45Z Igor123121 34732 utworzenie 540794 wikitext text/x-wiki Literatura polska sięga swoją historią XIII wieku i należy do jednych z bogatszych tradycji literackich Europy Środkowej. Na przestrzeni wieków, szczególnie w obliczu kryzysów politycznych i utraty państwowości, literatura pełniła w Polsce funkcję strażnika tożsamości narodowej i językowej. Polska doczekała się pięciu laureatów Nagrody Nobla w dziedzinie literatury. == Renesans i barok: fundamenty literatury polskiej == Za pierwszego wielkiego pisarza tworzącego wyłącznie po polsku uważa się Mikołaja Reja (1505–1569), który w satyrach, dialogach i kronikach utrwalił portret szlacheckiego społeczeństwa XVI wieku. Największym poetą renesansu był jednak Jan Kochanowski (1530–1584), którego fraszki, pieśni i hymn „Czego chcesz od nas, Panie" ustanowiły wzorzec polszczyzny literackiej. Jego cykl „Treny" – lament po śmierci córki Urszuli – jest uznawany za arcydzieło europejskiej liryki żałobnej. W epoce baroku szczególne miejsce zajmuje epika rycerska Jana Chryzostoma Paska (Pamiętniki) oraz twórczość Wacława Potockiego (Transakcja wojny chocimskiej). == Romantyzm: literatura jako broń narodu == Epoka romantyzmu przyniosła dzieła, które do dziś stanowią rdzeń kanonu literackiego. Adam Mickiewicz (1798–1855) w poemacie epicznym „Pan Tadeusz" (1834) stworzył literacki obraz ziem polskich na Litwie, uznawany za polską epopeję narodową. Jego dramatyczny poemat „Dziady" (cz. III, 1832) rozwinął koncepcję mesjanizmu polskiego – idei, że cierpienie narodu ma sens i misję. Juliusz Słowacki (1809–1849) wniósł do literatury polskiej wyrafinowany język poetycki i dramaty romantyczne („Kordian", „Balladyna"). Zygmunt Krasiński (1812–1859) stworzył dramat „Nie-Boska komedia", poświęcony konfliktowi klasowemu i rewolucji. == Pozytywizm i Nagrody Nobla == W epoce pozytywizmu dominowała proza realistyczna. Bolesław Prus (1847–1912) w powieści „Lalka" (1890) przedstawił panoramę polskiego społeczeństwa doby zaborów. Henryk Sienkiewicz (1846–1916) zyskał popularność dzięki Trylogii historycznej („Ogniem i mieczem", „Potop", „Pan Wołodyjowski") oraz powieści „Quo vadis", za którą w 1905 roku otrzymał jako pierwszy Polak Nagrodę Nobla w dziedzinie literatury. Kolejnymi noblistami byli: Władysław Reymont (1924, za powieść „Chłopi"), Czesław Miłosz (1980, wybitny eseista i poeta emigracyjny), Wisława Szymborska (1996, poetka) oraz Olga Tokarczuk (2018, przyznana w 2019 r., za powieść „Bieguni" i całokształt twórczości). 10hzeqb66ouahtrvy1jr4z9wlpqv9v9