2014-08-30 5 views
5

मुझे एक अर्थपूर्ण क्वेरी परिणाम तालिका टेम्पलेट चाहिए जहां मेरे पास कुछ कॉलम और अल्पविरामित सेल परिणाम दोनों तालिकाओं और अल्पविराम-सीमित कॉलम के लिए समान तालिका में हो सकते हैं।सेल न्यूलाइन के साथ एक सेमेन्टिक मीडियाविकि क्वेरी परिणाम टेम्पलेट स्वरूपण

अगर मैं मानक स्वरूप का उपयोग = 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 कि आप एक अलग विभाजक उपयोग कर रहे हैं बताने के लिए।

संबंधित मुद्दे