2015-06-22 6 views
1

У меня есть результат семантического запроса. Для одного из свойств, списка, разделенного запятыми, я хочу разделить каждый элемент и передать его в качестве параметра шаблону. Однако я изо всех сил пытаюсь найти способ сделать это.Semantic Mediawiki - Передача переменной в шаблон

Например,

Запрос:

{{#ask: [[Category:Something]] [[Has title::Somethingelse]] 
| mainlabel=- 
| ?Has property 
| link=none 
| format=template 
| template=plainText 
}} 

Шаблон PLAINTEXT будет иметь результат, который представляет собой список, разделенный запятыми. Теперь из шаблона plainText я хотел бы разделить список, разделенный запятыми, и поместить каждое значение в качестве параметра в другой шаблон.

Я пробовал использовать {{#arraydefine:key|values|delimiter|options}}, но когда я передаю {{#arrayindex:key|0}} шаблону, значение не передается. Весь массив передается разделенным на 0. Я также пробовал использовать {{#vardefine: и т. Д., Но это также не передает переменную.

Мой вопрос сводится к тому, как передать переменную шаблону?

Спасибо,

+0

Полезно, если вы публикуете «Шаблон: plainText», а также другой шаблон, который он вызывает. – JosefAssad

ответ

0

нуждается Разделение должно быть сделано в шаблоне. Если вы используете не названные арги, как в http://semantic-mediawiki.org/wiki/Template:Query_output_demo

Ваши Титулы могут быть выбраны с невыполнением так:

{{{1|param1default}}} {{{2|param2default}}} ... 

Теперь один из вашего Params является разделенным запятыми списка. Возможно, вы захотите использовать

#explode 

Функция парсера для доступа к различным частям CSV. Давайте предположим, что второй параметр имеет свой CSV-файл, то:

{#explode:{{{2}}}|;|0}} 
{#explode:{{{2}}}|;|1}} 
... 

обеспечит поля.

Для этой работы вам нужно

https://www.mediawiki.org/wiki/Extension:StringFunctions#.23explode:

и включить его.