Predloga:Infopolje
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.
Uporaba
{{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. --> }}
Opcijski kontrolni parametri
- name
- Če je prisoten ta parameter, se bodo na dnu infopolja prikazale povezave »prikaži predlogo/pogovor o predlogi/uredi predlogo«. V parameter lahko vpišete tudi {{subst:PAGENAME}}. Če ta parameter izpustite se povezave ne bodo pokazale. Ta parameter se uporablja bolj redko, ker običajno ne želimo, da uporabniki v članku klikajo na te povezave, namesto, da bi uredili podatke v infopolju.
- child
- Za podrobnejša pojasnila, glejte poglavje gnezdenje. Če je parameter nastavljen na "yes", naj ta child infopolje ima naslov, ampak naj ne vsebuje parametra name. Prednastavljeno je ta parameter prazen, da ga aktivirate mu nastavite "yes".
- subbox
- See the Subboxes section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the child parameter is also set to "yes".
- decat
- If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it.
Vsebinski parametri
Naslov
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):
- title
- Naslov na vrhu zunaj tabele
- above
- Naslov v najvišji celici tabele.
- subheader(n)
- dodatna polja za naslove, ki se izpišejo med {{{title}}} in {{{above}}}, ampak pred slikami.
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) }}
Slike, fotografije
- image(n)
- slike, ki se prikažejo na vrhu infopolja. Uporabite celotno sintakso za slike [[Slika:example.png|200px|alt=Prime alt besedila]]. Po privzetih nastavitvah je slika centrirana.
- caption(n)
- Besedilo pod slikami
Osnovni podatki
- header(n)
- Besedilo v glavi v vrstici n
- label(n)
- Besedilo v oznaki v vrstici n.
- data(n)
- Besedilo podatkov v vrstici n.
- below
- Besedilo v celici na dnu tabele. Celica je namenjena opombam, glej-tudi povezavam in podobnim informacijam.
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.
Number ranges
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.
Ustvarjanje neobveznih polj
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.
Hiding headers when all data fields are hidden
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"),
Footer
- below
- Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
Prikaz parametrov
Italic naslovi
Naslovi člankov z infopolji so lahko zapisani s poševno pisavo (italic) - parameter italic title
.
- V infopolju vključi poševni naslov:
|italic title={{{italic title|}}}
. - Kot privzeto izključi nekatere poševne naslove:
|italic title={{{italic title|no}}}
- Če ne želiš poševno zapisanih naslovo, tega parametra ne vključi.
Neobvezno CSS oblikovanje
- bodystyle
- Vpliva na celotno infopolje.
- titlestyle
- Vpliva samo na naslovno vrstico. Dodajanje barve za ozadje ni priporočeno, saj je besedilo zunaj tabele.
- abovestyle
- Vpliva samo na najvišjo celico v tabeli. Privzeta nastavitev je velika velikost znakov (font-size:large), saj se celica po navadi uporablja kot naslov. Za navadno velikost besedila uporabite oblikovanje »font-size:medium«.
- imagestyle
- Vpliva na oblikovanje celice, v kateri je nameščena slika. Prav tako vpliva tudi na besedilo pod sliko, vendar se za to uporablja parameter captionstyle, za primer, da se v prihodnosti besedilo pod sliko vstavi v lastno celico.
- captionstyle
- Vpliva na besedilo pod sliko.
- rowstyle(n)
- Ta paremeter se vrine v atribut
style
za določeno vrstico. - headerstyle
- Vpliva na celice glav.
- labelstyle
- Vpliva na celica oznak.
- datastyle
- Vpliva na vse podatkovne celice.
- belowstyle
- Vpliva samo na celico na dnu tabele.
HTML razredi
- bodyclass
- Parameter označuje atribut "class" za celotno infopolje.
- titleclass
- Parameter označuje atribut "class" za naslovno vrstico zunaj tabele.
- aboveclass
- Parameter označuje atribut "class" za naslovno celico na vrhu znotraj tabele.
- aboverowclass
- Parameter označuje atribut "class" za celotno vrstico v tabeli v kateri se nahaja celica "above".
- subheaderclass
- Parameter označuje atribut "class" podpoglavje infopolja.
- subheaderrowclass
- Parameter označuje atribut "class" za celotno vrstico v tabeli v kateri se nahaja podpoglavje.
- imageclass
- Parameter označuje atribut »class« za sliko.
- imagerowclass1, imagerowclass2
- Parameter označuje atribut "class" za celotno vrstico v tabeli v kateri se nahajajajo slike .
- rowclass(n)
- Parameter označuje atribut "class" za določeno vrstico vključno z label ali drogim besedilom za razlago.
- class(n)
- Parameter označuje atribut »class« za določeno celico. Če celica ne obstaja, potem nima nobenega vpliva.
- belowclass
- Parameter označuje atribut »class« za spodnjo "below" celico.
Mikrooblike
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.
Primeri
{{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 | |
Gnezdenje
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 }}
Subboxes
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.
Controlling line-breaking in embedded bulletless lists
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.
Popolna prazna sintaksa
(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 = }}
Infopolja in stil uporabnika (user style)
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; }
Glej tudi
- Modul:Infobox, modul Lua na katerem ta predloga bazira
- Modul:Check for unknown parameters
- {{Infobox3cols}}
- {{Navpolje}} in {{Sidebar}}
- Seznam infopolj
- Modul:InfopoljeSlika
Sledilne kategorije
- Kategorija:Strani, ki uporabljajo infopolje brez podatkovnih vrstic (0)
- Kategorija:Strani, ki vsebujejo gnezdeno infopolje s parametrom title (10)
- Kategorija:Strani, ki uporabljajo infopolje s prezrtimi data celicami (0)