2014-08-30 14 views
5

Ho bisogno di un modello di tabella dei risultati della query semantica in cui sia possibile ottenere risultati di celle delimitate da righe per alcune colonne e colonne delimitate da virgole nella stessa tabella.Formattazione di una query semantica MediaWiki modello risultante con celle newline

Se uso il formato standard = broadtable, per esempio, il risultato è separati da capo all'interno delle celle per tutte le colonne:

{{#ask:[[Category:Items]] 
|?Description 
|?Models 
|?Addons 
|format=broadtable 
}} 

Se a creare un modello, sommato sono in grado di realizzare è risultato separato da virgole:

<includeonly> 
{| class="wikitable sortable" 
! style="width: 30%;" | Page 
!! style="width: 30%;" | Description 
!! style="width: 20%;" | Models 
!! style="width: 20%;" | Addons 
|- 
</includeonly> 

{{#ask:[[Category:Items]] 
|?Description 
|?Models 
|?Addons 
|format=template 
|template=QResTemplate 
}} 

<includeonly> 
|} 
</includeonly> 

Ecco l'QResTemplate:

<includeonly> 
| {{{1}}} || {{{2}}} || {{{3}}} || {{{4}}} 
|- 
</includeonly> 

Ogni elemento ha più modelli e componenti aggiuntivi, quindi nella tabella 3 e 4 nella tabella ho bisogno che uno di essi sia separato da virgola mentre l'altro è separato da nuova riga.

Se aggiungo qualcosa dopo {{{3}}}, come una nuova riga, viene aggiunto dopo l'ultimo modello nella riga della tabella, non dopo ogni modello come lo desidero.

risposta

2

Usa Extension:Arrays per formattare il virgole uscite separate come si vuole:

<includeonly><!-- 

     store arrays 

-->{{#arraydefine:models|{{{3}}}}}<!-- 
-->{{#arraydefine:addons|{{{4}}}}}<!-- 

     print row 

--> 
| {{{1}}} || {{{2}}} || {{#arrayprint:models|<br/>}} || {{#arrayprint:addons|, }} 
|- 
</includeonly> 

In primo luogo si memorizzare entrambe le liste come array. arraydefine presuppone che l'elenco sia separato da virgola, a meno che non si specifichi qualcos'altro. Quindi si stampa di nuovo gli array con #arrayprint, ma questa volta è possibile decidere come si desidera che tali valori vengano separati.

Se non è possibile utilizzare le virgole (ad esempio, perché alcuni valore contiene una virgola, è possibile aggiungere per esempio sep=¤ alla query chiedere, e poi fare {{#arraydefine:models|{{{3}}}|¤}} dire arraydefine che si sta utilizzando un separatore diverso.

Problemi correlati