2014-08-30 97 views
5

我需要一個語義查詢結果表的模板,我可以對在同一個表中的某些列和逗號分隔兩列換行分隔細胞的效果。格式化與細胞換行符語義鏈接到MediaWiki查詢resulttable模板

如果我使用標準格式= broadtable,例如,結果是由表格單元格內換行的所有列分隔:

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

如果我創建一個模板,所有我能完成是逗號分隔的結果是:

<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> 

這裏是QResTemplate:

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

每個項目具有多個模型和擴展中心,因此它是表中的列3和4,我需要它們中的一個是逗號分隔的,而另一個是換行符分隔。

如果我加入後,{{{3}}},就像一個換行符,它是在錶行的最後一個型號後,我希望它補充說,不是每個型號之後的東西。

回答

2

使用Extension:Arrays格式化您的逗號分隔的輸出,只要你想:

<includeonly><!-- 

     store arrays 

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

     print row 

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

首先你兩個列表存儲爲數組。 arraydefine假定你的列表是逗號分隔的,除非你指定了別的東西。然後你用#arrayprint重新打印您陣列,但這個時候你可以決定你要如何分隔這些值。

如果你不能使用逗號(例如,由於某些值包含逗號,你可以例如新增sep=¤你問查詢,然後做{{#arraydefine:models|{{{3}}}|¤}}告訴您使用的是不同的分隔arraydefine。