Wikia

Wikia Centrale

Commenti0

Creare un template per un profilo

150px-Avatar.jpg

Per chi inizia a contribuire nelle wiki, di solito non ha familiarità con i template e uno dei primi e più diffusi che si trova ad usare è il template per creare un generico profilo. Questi profili, chiamati anche infobox(es), sono in realtà semplici tabelle che raccolgono le informazioni essenziali del soggetto della pagina. L'uso di un template, al contrario della creazione di una tabella pagina per pagina, garantisce uniformità di stile ed informazioni nella wiki.

Per poter creare un template di un profilo, bisogna prima avere qualche nozione base su come funzionano i template e le tabelle.

Come funzionano i template?

Concetti base

I template sono semplicemente delle pagine "richiamate" in altre pagine. Per questo motivo sono utili nel caso si dovesse usare una parte di codice, un formato o del semplice testo su tante pagine: lo si crea una sola volta, lo si aggiunge nelle pagine e ogni eventuale modifica è sufficiente farla una volta sola nella pagina del template.

Creazione

Per creare un template è sufficiente creare una pagina che inizi con Template:, questo prefisso è il "namespace".

Inclusione di un template in altre pagine

Per includere un template in una pagina, nella modalità codice sorgente, basta digitare il nome del template senza il namespace tra due coppie di graffe. Ad esempio se il nostro template si chiamasse Template:Esempio, per inserirlo in una pagina bisogna digitare {{Esempio}}. Così facendo, tutto ciò all'interno del template, verrà mostrato nella pagina desiderata, in questo senso potete pensare al template come ad un post-it sopra una pagina. Si può anche controllare meglio quale parti del template compariranno nella pagina tramite alcuni tag:

  • <noinclude></noinclude>: il codice compreso tra questi due tag non verrà aggiunto nelle pagine. Le categorie del template stesso e la documentazione vanno inseriti qui dentro, per evitare che siano aggiunti anche alle pagine.
  • <includeonly></includeonly>: il codice compreso tra questi due tag verrà aggiunto solo alle pagine e non verrà invece mostrato nella pagina del template. Se ad esempio un template viene usato per aggiungere una categoria, la categoria va messa qui dentro per evitare che il template si auto-aggiunga alla categoria stessa.

Parametri

I parametri sono delle variabili usate nel template che si possono definire al momento della chiamata. Si identificato con tre parentesi graffe e ce ne sono di due tipi:

  • chiamati con un nome, ad esempio {{{nome}}}. Quando il template viene aggiunto, nel nostro caso "Template:Esempio", per assegnare un valore a questi template si usa il codice {{Esempio|nome=Mario}}.
  • liberi, chiamati in progressione, ad esempio {{{1}}}, {{{2}}}, {{{3}}} ecc. Quando il template viene aggiunto, nel nostro caso "Template:Esempio", per assegnare un valore a questi template si usa il codice {{Esempio|Mario|Giorgio|Sofia}} e i valori verranno assegnati in progressione (ad esempio in questo caso "Giorgio" è il parametro 2). Alternativamente si può esplicitamente indicare il numero come {{Esempio|2=Giorgio}}.

Quindi i parametri vengono inseriti nel codice del template e verranno sostituiti con il codice assegnato durante la chiamata del template.

Cosa succede se non viene assegnato un valore? Si può indicare un valore "standard" di un parametro da mostrare nel caso in cui nessun valore venga indicato in questo modo: {{{nome|Valore standard}}} o {{{1|Valore standard}}}. Nel caso di {{{nome|{{{1}}}}}} se il parametro "nome" non viene indicato, viene mostrato il primo parametro libero. Da notare che se il parametro viene indicato "vuoto", non verrà mostrato il valore standard.

Tabelle

Codici base

Ecco la struttura di tabella, nella modalità codice sorgente:

{|
! colspan="2" | Testo
|-
| Testo
| Testo
|-
| Testo
| Testo
|}

nel dettaglio:

  • {|: codice che "apre" la tabella. Aggiungendo style= si può definire lo stile dell'intera tabella.
  • ! e |: codice per una cella, da inserire a inizio riga. Il numero massimo di celle su una stessa riga indica anche il numero di colonne, che sarà lo stesso per tutta la tabella, per cui deve essere coerente. !</code indica una cella "header" (th), tipicamente il testo sarà automaticamente in grassetto e centrato.
  • <code>colspan="#": fa occupare alla cella # colonne. Tra il colspan (ed eventualmente lo style) e il contenuto della cella bisogna inserie |. Similmente rowspan="#" fa occupare la cella # righe.
  • |-: codice per una nuova riga, da inserire ad inizio riga.
  • |}: codice che "chiude" la tabella.

Le tabelle possono essere inserite anche in formato HTML, ma è sconsigliato.

Creiamo il profilo!

Base

Un profilo è essenzialmente una tabella, prima di pensare a come personalizzare l'aspetto, bisogna fare mente locale su quali informazioni si vogliono inserire e tirare giù una bozza della struttura della tabella. Facciamo ad esempio una semplice tabella per un profilo personaggio, che inseriremo nel Template:Profilo personaggio:

Sconosciuta
{{{immagine}}}
Livello: Sconosciuto
Provenienza: Sconosciuta
Poteri: Sconosciuti
{| style="float:right; margin:0 0 0.5em 1em; border:1px solid silver;"
! colspan="2" | {{{nome|Sconosciuta}}}
|-
! colspan="2" | {{{immagine}}}
|-
! Livello:
| {{{livello|Sconosciuto}}}
|-
! Provenienza:
| {{{provenienza|Sconosciuta}}}
|-
! Poteri:
| {{{poteri|Sconosciuti}}}
|}

Come si può notare, sono stati usati dei valori standard nel caso i parametri non vengano usati.

Un po' di stile...

Quella di prima era la versione base. Adesso proviamo a personalizzare un po' lo stile dei vari elementi con il CSS:

Sconosciuto
{{{immagine}}}
Livello: Sconosciuto
Provenienza: Sconosciuta
Poteri: Sconosciuto
{| style="width:250px; float:right; margin:0 0 0.5em 1em; border-collapse:collapse;"
! colspan="2" style="padding:3px; background:blue; color:white; border:1px solid black;" | {{{nome|Sconosciuto}}}
|-
! colspan="2" style="padding:0px; border:1px solid black;" | {{{immagine}}}
|-
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" | Livello:
| style="padding:3px; border:1px solid black;" | {{{livello|Sconosciuto}}}
|-
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" | Provenienza:
| style="padding:3px; border:1px solid black;" | {{{provenienza|Sconosciuta}}}
|-
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" | Poteri:
| style="padding:3px; border:1px solid black;" | {{{poteri|Sconosciuto}}}
|}

Come si può notare il codice appare un po' complicato. Se si volesse semplificarlo, si può creare una classe CSS e spostare tutte le proprietà in un foglio di stile (MediaWiki:Wikia.css per Oasis e MediaWiki:Monobook.css per monobook, leggere questo post a riguardo). Tramite alcuni selettori si possono selezionare gli elementi desiderati:

/* Stile tabella generale */
table.profilo {
    width: 250px;
    float: right;
    margin: 0 0 0.5em 1em;
    border-collapse: collapse;
}
 
/* Stile cella semplice */
table.profilo th, table.profilo td {
    padding: 3px;
    border: 1px solid black;
}
 
/* Stile prima cella header */
table.profilo tr:profilo th {
    padding: 3px;
    background: blue;
    color: white;
    border: 1px solid black;
}
 
/* Stile altre celle header */
table.profilo th:first-of-type {
    padding: 3px;
    background: lightblue;
    color: black;
    border: 1px solid black;
}

Con questo modo, il codice di prima diventa:

{| classe="profilo"
! colspan="2" | {{{nome|Sconosciuto}}}
|-
! colspan="2" style="padding:0px;" | {{{immagine}}}
|-
! Livello:
| {{{livello|Sconosciuto}}}
|-
! Provenienza:
| {{{provenienza|Sconosciuta}}}
|-
! Poteri:
| {{{poteri|Sconosciuto}}}
|}

Molto più semplice no?

Nascondere righe

Invece che mostrare un valore standard, spesso si preferisce nascondere del tutto una riga. Ci sono due modi efficaci per fare ciò:

{| classe="profilo" <!-- Inizio tabella -->
|-
<!-- Inizio riga da nascondere -->
{{#if: {{{livello|}}} |
! Livello:
{{!}} {{{livello}}}
{{!}}-
}}
<!-- Inizio nuova riga da nascondere -->
{{#if: {{{provenienza|}}} |
! Provenienza:
{{!}} {{{provenienza}}}
{{!}}-
}}
<!-- altro -->

Questo modo non crea proprio le celle e usa una funzione if.

|- {{#if: {{{livello|}}} | <!-- Mostra --> | style="display:none:" }}
! Livello:
| {{{livello|Sconosciuto}}}
|-

Questo modo nasconde le celle. Ognuno usa il metodo che preferisce, personalmente uso di solito il primo metodo, mentre il secondo è più comodo per nascondere sezioni con tanti elementi ed è anche più semplice da capire e mettere in pratica. Notare l'uso del template {{!}} nell'if per evitare di confendere il "|" della tabella con il "|" dell'if.

Mettiamo tutto insieme

Mettendo tutto ciò che abbiamo imparato insieme si ha:

{| style="width:250px; float:right; margin:0 0 0.5em 1em; border-collapse:collapse;"
! colspan="2" style="padding:3px; background:blue; color:white; border:1px solid black;" | {{{nome|{{PAGENAME}}}}}
|-
! colspan="2" style="padding:0px; border:1px solid black;" | {{{immagine}}}
|-
{{#if: {{{livello|}}} |
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" {{!}} Livello:
{{!}} style="padding:3px; border:1px solid black;" {{!}} {{{livello|Sconosciuto}}}
{{!}}-
}}
{{#if: {{{provenienza|}}} |
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" {{!}} Provenienza:
{{!}} style="padding:3px; border:1px solid black;" {{!}} {{{provenienza|Sconosciuta}}}
{{!}}-
}}
{{#if: {{{poteri|}}} |
! style="padding:3px; background:lightblue; color:black; border:1px solid black;" {{!}} Poteri:
{{!}} style="padding:3px; border:1px solid black;" {{!}} {{{poteri|Sconosciuto}}}
}}
|}

o se si separa il CSS:

{| classe="profilo"
! colspan="2" | {{{nome|{{PAGENAME}}}}}
|-
! colspan="2" | {{{immagine}}}
|-
{{#if: {{{livello|}}} |
! Livello:
{{!}} {{{livello|Sconosciuto}}}
{{!}}-
}}
{{#if: {{{provenienza|}}} |
! Provenienza:
{{!}} {{{provenienza|Sconosciuta}}}
{{!}}-
}}
{{#if: {{{poteri|}}} |
! Poteri:
{{!}} {{{poteri|Sconosciuto}}}
}}
|}

Usiamo il nostro profilo

Adesso che abbiamo creato il nostro profilo, proviamo ad usarlo! Il nostro profilo è in Template:Profilo personaggio, per cui se vogliamo inserirlo in una pagina useremo questo codice:

leviathan_89
Leviathan 89.png
Livello: 9000
Provenienza: Alfa Centauri
Poteri: Infiniti
{{Profilo personaggio
| nome          = leviathan_89
| immagine      = [[File:Leviathan_89.png|200px]]
| livello       = 9000
| provenienza   = Alfa Centauri
| poteri        = Infiniti
}}

Ultime cose

Problemi comuni

Certe volte come informazioni si aggiungono delle liste. Il codice per inserire una lista, deve essere posizionato ad inizio riga, per cui per farlo funzionare correttamente anche il parametro deve essere posizionato ad inizio riga, altrimenti quando verrà sostituito con la lista il primo elemento non sarà mostrato correttamente. Esempio di correzione:

|-
! Poteri:
|
{{{poteri|Sconosciuti}}}
|-

Categorizzazione automatica

Si può fare in modo che il template aggiunga automaticamente una categoria a secondo del valore di un parametro, ad esempio con un codice simili:

{{#switch: {{{allineamento|none}}}
  |buono    = [[Categoria:Personaggi buoni]]
  |malvagio = [[Categoria:Personaggi malvagi]]
  |neutrale = [[Categoria:Personaggi neutrali]]
  |nessuno  = [[Categoria:Personaggi con allineamento sconosciuto]]
}}

da aggiungere da qualche parte nel template, ad esempio in fondo.

Vedere anche

Pagine d'aiuto