Используйте переменную страницы в качестве переменной шаблона

В настоящее время у меня есть простой шаблон инфобокса, работающий на внутренней медиа-вики. Я хотел бы передать категорию страниц в шаблон, чтобы я мог создать список, используя дерево категорий.

Можно ли подобрать шаблон Category = foo

из моих страниц, которые уже имеют [[Category:Foo]]

на них написано?

т.е. мой текст шаблона в верхней части страницы будет иметь такой раздел

{{Infobox сайт | Category = что-то }}

забрать его из [[Category:Foo]], который у меня уже есть на всех моих страницах?

Спасибо

1 ответ

В Magic Word нет встроенной функции для получения категорий, но вы можете легко создать для этого функцию парсера и использовать выходные данные, например, с расширением Arrays, чтобы выяснить, относится ли страница к определенной категории или нет. Тем не менее, это кажется большой работой, чтобы сэкономить очень мало работы (вводя несколько дополнительных букв время от времени).

Если вы хотите создать функцию парсера, чтобы получить текущую, это так просто:

function getCategories( &$parser, $title) {
    // Will return a comma separated list of categories.
    $categories = $title->getParentCategories();
    return implode(",", $categories);
}

Если вы знаете, что нужно проверять для каждой страницы, вы также можете использовать Extension: PageInCat.

Изменить: теперь я вижу, что ваш вопрос помечен Semantic MediaWiki, Это делает это простым:

{{#if:
  {{#ask:[[Category:Foo]] {{FULLPAGENAME}}|default=|}}
  |''This page is in Category:Foo!''
  |''This page is not in Category:Foo. Let's add it.''
}}
Другие вопросы по тегам