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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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|}} (kod {{Code|{{Nowiki|}}}}). 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 "";
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