Ta predloga vsebuje skrajno zapletene in/ali ezoterične skladenjske elemente.
Prosimo vas, da predloge ne spreminjate, če niste popolnoma prepričani in niste pripravljeni popraviti vse posledične stranske škode ob nepričakovanih rezultatih. Vse preizkušanje opravite v podpredlogi /peskovnik ali v vašem uporabniškem prostoru. |
Uporablja Lua: |
{{{above}}} | |
---|---|
{{{subheader}}} | |
{{{subheader2}}} ...... | |
{{{image}}} | |
{{{image2}}} | |
{{{header1}}} ( ali ) | |
{{{label1}}} | {{{data1}}} |
( ali ) | |
{{{data1}}} | |
{{{header2}}} ( ali ) | |
{{{label2}}} | {{{data2}}} |
( ali ) | |
{{{data2}}} | |
( itd ) | |
{{{below}}} | |
Ta predloga je meta-predloga: predloga, ki se uporablja za gradnju drugih predlog. Opozorilo: V splošnem naj se ne uporablja direktno v člankih. Pomoč:Infopolje vsebuje osnovna pojasnila o vsebini in obliki infopolj; Wikipedija:Slogovni priročnik/Infopolja vsebuje dodatne slogovne smernice. Za seznam že pripravljenih infopolj, glejte Wikipedija:Seznam infopolj in Kategorija:Infopolja.
{{Infopolje}} je meta-predloga, uporablja se jo pri ustvarjanju drugih predlog: uporablja se za organiziranje dejanske predloge {{Infopolje ImeInfopolja}} (kot je {{Infopolje Zgradba}}).
Koda v predlogi [[Predloga:Infopolje ImeInfopolja]]
naj izgleda približno takole, poenostavljeno:
{{Infopolje | name = {{{name|{{PAGENAME}}}}} | image = {{{image|}}} | caption1 = {{{caption|}}}}}} | label1 = Bivša imena | data1 = {{{former_names|}}} | header2 = Splošne informacije | label3 = Status | data3 = {{{status|}}} ... <!-- itd. --> }}
Obstajata dve različni poti za vstavljanje naslova v infopolje. Pri prvi je naslov na vrhu zunaj tabele, pri drugi pa je naslov na vrhu znotraj tabele, v najvišji celici. Lahko se uporabita tudi oba parametra naenkrat, samo enega izmed njiju ali pa tudi nobenega (čeprav to ni priporočeno):
Zgledi:
Podnaslov infopolja | |
{{Infopolje | name = {{subst:PAGENAME}} | title = Naslov nad tabelo | subheader = Podnaslov infopolja | header = (preostali del infopolja gre tukaj) }}
Naslov v najvišji celici tabele | |
---|---|
Podnaslov infopolja | |
Drugi podnaslov infopolja | |
{{Infopolje | name = {{subst:PAGENAME}} | above = Naslov v najvišji celici tabele | subheader = Podnaslov infopolja | subheader2 = Drugi podnaslov infopolja | header = (preostali del infopolja gre tukaj) }}
Opomba: trenutno header, label in data z isto n-vrednostjo niso medsebojno izključujoče; prikazani bodo vsi. glej izvedbo header4, label4 indata4 v poglavju primeri.
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
| header3 = Section 1 | label5 = Label A | data5 = Data A | label7 = Label C | data7 = Data C | header10 = Section 2 | label12 = Label D | data12 = Data D
It is also possible to automatically renumber parameter names by using User:Frietjes/infoboxgap.js or Module:IncrementParams.
Vrstica z oznako (label) brez podatkov (data) se ne prikaže. To omogoča enostavno ustvarjanje neobveznih polj z vsebino. Da bi ustvarili vrstico uporabite naslednje parametre:
|label5 = Populacija |data5 = {{{populacija|}}}
Če torej v članku ni definiran parameter populacija, se ta vrstica ne bo prikazala.
Za bolj zapletena polja, ki imajo prednastavljeno vsebino (npr. merske enote) in bi bila zaradi tega prikazana, tudi če bi bil parameter prazen, je potrebno določiti stavek »#if«. Na primer, »#if« v naslednjem primeru računalnik prebere: »#if:če je določen parameter masa|potem ga prikaži, za njim pa izpiši kg«:
|label6 = Masa |data6 = {{#if:{{{masa|}}} |{{{masa}}} kg}}
Več o stavkih #if lahko preberete na meta-wiki.
Na podoben način lahko naredite neobvezno tudi glavo (header). Če želite, da se glava prikaže, le če so izpolnjeni parametri pod njo, lahko uporabite naslednji vzorec kot primer:
{{Infopolje |name = {{subst:PAGENAME}} |title = Primer neobvezne glave |header1 = {{#if:{{{podatek_ena|}}}{{{podatek_dva|}}}{{{podatek_tri|}}} |Neobvezna glava}} |label2 = Podatek ena |data2 = {{{podatek_ena|}}} |label3 = Podatek dva |data3 = {{{podatek_dva|}}} |label4 = Podatek tri |data4 = {{{podatek_tri|}}} }}
Polje header1 (glava1) bo prikazano le, če bo kateri izmed sledečih podatkov/parametrov definiran. Če nobeden izmed teh ni definiran, potem se tudi glava ne bo prikazala.
You can also make headers optional in a similar way. Consider this example:
Undesirable header | |
---|---|
Static header | |
Static item | Static value |
{{Infopolje | title = Example of an undesirable header | header1 = Undesirable header | label2 = Item 1 | data2 = | label3 = Item 2 | data3 = | label4 = Item 3 | data4 = | header5 = Static header | label6 = Static item | data6 = Static value }}
If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it:
Static header | |
---|---|
Static item | Static value |
{{Infopolje | title = Example of an optional header | header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }} | label2 = Item 1 | data2 = {{{item1|}}} | label3 = Item 2 | data3 = {{{item2|}}} | label4 = Item 3 | data4 = {{{item3|}}} | header5 = Static header | label6 = Static item | data6 = Static value }}
header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no empty row appears before the next static content. The trick to this is that the "#if" returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail.
Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invokation of this template as a subbox). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like "autohide header1 = yes", for example, would remove the need to perform the "#if" test so that we can just to define "header1 = Optional header"),
Naslovi člankov z infopolji so lahko zapisani s poševno pisavo (italic) - parameter italic title
.
|italic title={{{italic title|}}}
.|italic title={{{italic title|no}}}
style
za določeno vrstico.Ta predloga podpira tudi dodajanje informacij o mikrooblikah. To storimo z dodajanjem parametrov »class« različnim celicam. Za označitev infopolja, da vsebuje hCard informacijo, dodaj npr. sledeče parametre:
|bodyclass = vcard
In za vsako vrstico, ki vsebuje podatke, ki so del vcard-a, dodaj ustrezni class parameter:
|class1 = fn |class2 = org |class3 = tel
...in tako naprej. "above" in "title" imata prav tako lahko določen class, ker običajno prikazujeta ime subjekta infopolja.
{{Infopolje |name = Infopolje/dok |title = Test Infopolje |image = [[Slika:example.png|200px]] |caption = Napis pod sliko |headerstyle = background:#ccf; |labelstyle = background:#ddf; |header1 = Definirana je samo glava |label1 = |data1 = |header2 = |label2 = Definirani so samo podatki - se ne izpiše (potrebuje tudi data) |data2 = |header3 = |label3 = |data3 = Definirani so samo podatki |header4 = Definirani so vsi tri parametri (glava) |label4 = se ne izpiše (ista številka kot header) |data4 = se ne izpiše (ista številka kot header) |header5 = |label5 = Definirana sta oznaka in podatek (oznaka) |data5 = Definirana sta oznaka in podatek (podatek) |belowstyle = background:#ddf; |below = Besedilo opomb }}
Iz tega primera je razvidno, da se oznaka ne prikaže, kadar je definirana brez podatkov. Kadar so definirana vsa tri polja v isti vrstici, ima prednost glava, zato se oznaka (label) in podatek (data) ne prikažeta.
Slog CSS naslednjega primera je bodystyle = width:20em; in labelstyle = width:33%;
Oznaka 1 | Podatek 1 |
---|---|
Oznaka 2 | Podatek 2 |
Oznaka 3 | Podatek 3 |
Glava 4 | |
Oznaka 5 | Podatek 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |
Besedilo opomb | |
Predloga infopolje je lahko gnezdena znotraj drugega infopolja z uporabo parametra |child=
.
Prva podskupina | |
Oznaka 1.1 | Podatek 1.1 |
---|---|
Druga podskupina | |
Oznaka 2.1 | Podatek 2.1 |
Besedilo opomb |
{{Infopolje | title = Naslov nad tabelo | data1 = {{Infopolje | child = yes | title = Prva podskupina | label1= Oznaka 1.1 | data1 = Podatek 1.1 }} | data2 = {{Infopolje | child = yes | title = Druga podskupina | label1= Oznaka 2.1 | data1 = Podatek 2.1 }} |belowstyle = |below = Besedilo opomb }}
An alternative method for embedding is to use |subbox=yes
, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
Main 1 | |||||||
---|---|---|---|---|---|---|---|
Main 2 | |||||||
| |||||||
| |||||||
Label 5 | Data 5 | ||||||
Main 6 |
{{Infopolje
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infopolje | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infopolje | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
Similar embedding techniques may be used within content parameters of some other templates generating tables (such as Sidebar) :
Heading 1 | ||||||
---|---|---|---|---|---|---|
Heading 2 | ||||||
|
||||||
|
||||||
Heading 5 |
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infopolje | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infopolje | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
Template {{nbsp}}
may be used with {{wbr}}
and {{nowrap}}
to control line-breaking in bulletless lists embedded in infoboxes (e.g. cast list in {{Infobox film}}
), to prevent wrapped long entries from being confused with multiple entries. See Template:Wbr/doc#Controlling line-breaking in infoboxes for details.
(Opomba: število možnih vrstic ni omejeno; spodaj je prikazanih le 20, ker so večja infopolja relativno redka. Potrebno je le podaljšano oštevilčevanje. Parametri mikroformata "class" so prav tako izpuščeni, ker se ne uporabljajo pogosto.)
{{Infopolje | name = {{subst:PAGENAME}} | child = {{{child|}}} | subbox = {{{subbox|}}} | italic title = {{{italic title|no}}} | bodystyle = | titlestyle = | abovestyle = | subheaderstyle = | title = | above = | subheader = | imagestyle = | captionstyle = | image = | caption = | image2 = | caption2 = | headerstyle = | labelstyle = | datastyle = | header1 = | label1 = | data1 = | header2 = | label2 = | data2 = | header3 = | label3 = | data3 = | header4 = | label4 = | data4 = | header5 = | label5 = | data5 = | header6 = | label6 = | data6 = | header7 = | label7 = | data7 = | header8 = | label8 = | data8 = | header9 = | label9 = | data9 = | header10 = | label10 = | data10 = | header11 = | label11 = | data11 = | header12 = | label12 = | data12 = | header13 = | label13 = | data13 = | header14 = | label14 = | data14 = | header15 = | label15 = | data15 = | header16 = | label16 = | data16 = | header17 = | label17 = | data17 = | header18 = | label18 = | data18 = | header19 = | label19 = | data19 = | header20 = | label20 = | data20 = | belowstyle = | below = }}
Uporabniki lahko nastavijo CSS uporabnika, ki v brskalniku skrije katerokoli infopolje.
Za skritje infopolja dodajte v samostojno vrstico Posebno:MojaStran/common.css (za vse kože ali Posebno:MojaStran/skin.css le za trenutno kožo):
.infobox { display: none; }