ВикиФур:DPL

Материал из ВикиФур
Перейти к: навигация, поиск
Wiki.png Эта страница — эссе о ВикиФуре, она не является правилом или руководством.

Вы можете обсудить эту страницу или обновить её в соответствии с вашим видением текущей ситуации в проекте.

На ВикиФуре есть одно из самых полезных и распространённых расширений для MediaWiki — Dynamic Page List, или DPL. Он позволяет выводить список страниц по сложным критериям, таким как участие в категориях, размер, дата создания и другие. Он также позволяет отсортировать этот список по разным ключам, включить информацию о страницах и даже части этих страниц.

DPL имеет сложный синтаксис и поэтому не используется в статьях. Однако он выполняет серьёзную роль на служебных страницах и порталах. Порталы — важная информационная часть ВикиФура, и для тех, кто хочет создать тематический портал, предназначена эта инструкция.

Это руководство включает только самые нужные, ключевые функции. DPL может гораздо больше, о чём можно прочитать на официальном сайте или задать вопрос в обсуждении.

Синтаксис[править]

В общем и целом список DPL записывается так:

{{#dpl:
 | параметр = значение
 | параметр = значение
 | параметр = значение
 ...и т.д.
}}

Или так:

<DPL>
  параметр = значение
  параметр = значение
  параметр = значение
  ...и т.д.
</DPL>

Так как расширение было написано англоязычным автором, параметры и значения записываются по-английски.

Пример использования:

{{#dpl:
 | category = Леопарды
 | category = Персоналии
}}

Результат:

Критерии выбора[править]

Самым простым критерием является параметр «category» (англ. категория). Указав его, вы говорите DPL показывать страницы только из этой категории. Можно указать параметр несколько раз, как в примере выше, чтобы задать поиск страниц, содержащихся во всех указанных категориях одновременно.

Если нужно найти страницы, находящиеся в одной или другой категории, надо поставить между ними в критерии знак {{!}}.

Например:

 | category = Художественная литература {{!}} Комиксы

В таком списке будут все страницы из категории Художественная литература и все страницы из категории Комиксы. Можно указывать таким образом несколько альтернативных категорий.

Некоторые категории вложены одна в другую, и тогда бывает нужно найти страницы из вложенных категорий. Например, большая часть статей в категории Кошачьи рассортирована по вложенным категориям видов — Тигры, Львы, Кошки… Чтобы включить в список страницы из вложенных категорий, нужно поставить звёздочку перед названием категории.

Например:

 | category =*Кошачьи

В таком списке будут все страницы из категории Кошачьи, а также все страницы из категорий, вложенных в неё. Иногда в поиск нужно включить дочерние категории второго уровня (те, что вложены в категории, вложенные в категории, например Волчьи -> Волки -> Волки-оборотни). Чтобы это сделать, надо поставить две звёздочки.

Например:

 | category =**Волчьи

В такой список войдут все страницы из категории Волчьи, из вложенных в неё категорий, а также из категорий, вложенных в них. В том числе страницы про Волков-оборотней.

Иногда из списка, наоборот, нужно исключить категорию статей. Например, в категории Ролевые игры находятся не только статьи об играх, но также и некоторые термины из ролевых игр, такие как Ролевая система. Если нужно получить список ролевых игр, термины надо исключить. Для этого используется параметр notcategory (примерно означает «кроме категории»).

Например:

 | category = Ролевые игры
 | notcategory = Термины

Такой список выведет все страницы в категории Ролевые игры (кроме вложенных), но исключит те, которые также относятся к Терминам.

Как и с category, можно указать несколько категорий для исключения.

Например:

 | category = *Кошачьи
 | notcategory = Произведения с кошачьими
 | notcategory = Наименования животных

Такой поиск даст все страницы из Кошачьих и вложенных в неё категорий, кроме произведений о кошачьих и статей о видах кошек.

К сожалению, в notcategory нельзя указать несколько категорий или вложенность. Однако можно воспользоваться параметром notcategorymatch, который учитывает все категории со сходными названиями по маске. Символ % в маске означает любую последовательность символов. Например:

 | category = **Кошачьи
 | notcategorymatch = Произведения%

В таком поиске будут все страницы из категории Кошачьи и вложенных в неё до второго уровня, кроме страниц из категорий Произведения с кошачьими, Произведения с тиграми, Произведения со львами

Существуют и другие критерии:

  • namespace — пространство имён (например, Шаблон или Файл). Чаще всего бывает полезно указать пространство статей (основное) — main.
  • categoriesminmax — минимальное и максимальное число категорий, к которым отнесена страница. Указывается в формате «categoriesminmax=минимум, максимум», например «categoriesminmax=5,99».
  • createdby — по имени создателя.
  • lastmodifiedby — по имени последнего редактора.
  • titlematch — по маске названия статьи, как в notcategorymatch.

Сортировка и случайный выбор[править]

Список можно упорядочить по разным критериям с помощью параметра ordermethod. В нём указывается ключ, по значениям которых сортируется список.

Значения ordermethod:

  • title — название статьи, включая префикс пространства имён, такой как Шаблон:.
  • titlewithoutnamespace — название статьи без префикса.
  • size — длина текста.
  • firstedit — дата создания статьи.
  • lastedit — дата последней правки.
  • counter — число прочтений.

Направление сортировки указывается параметром order: ascending (по возрастанию) или descending (по убыванию).

Например:

 |ordermethod=size
 |order=descending

Такой список будет упорядочен по размеру страниц, от наибольшего к наименьшему.

Список можно показать в случайном порядке. Для этого служит параметр randomcount. В нём указывается число, сколько страниц будет выбрано случайно из поиска. Также можно указать randomseed, если надо, чтобы состав случайного списка менялся не каждый раз при загрузке страницы, а раз в период времени.

Например:

 | category = **Произведения с волчьими
 | randomcount = 3
 | randomseed = {{#time:Ymd}}

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

Оформление[править]

По умолчанию DPL выводит найденные страницы в форме списка. Внешний вид списка можно настроить.

Если список получается слишком длинным, можно указать число столбцов:

 | columns = 3

Примеры таких списков можно посмотреть на Кошачьем портале.

Иногда найденных страниц поистине много. Тогда можно указать ограничение с помощью параметра count (англ. счёт). Если отсчёт этого количества страниц нужно сделать не с первой найженной, то можно указать параметр offset (англ. отступ).

Например:

 |count=30
 | offset=20
 |resultsheader=Всего найдено: %TOTALPAGES%, показано %PAGES%.\n

Такой список будет ограничен 30 пунктами, начиная с 21ой найденной страницы. Второй параметр добавлен для того, чтобы сверху показывалось общее число найденных страниц.

Можно добавить в список сведения о найденных страницах, такие как длина в байтах или дата создания. Для каждого вида данных есть свой параметр, значение которого может быть true (истина) или false (ложь).

  • addcategories — добавляет список категорий страницы.
  • addpagecounter — добавляет, сколько раз эту страницу читали.
  • addpagesize — добавляет длину текста в байтах.
  • addauthor — добавляет имя создателя статьи.
  • addlasteditor — добавляет имя того, кто последний редактировал статью.

Например:

| category = Термины
| addcategories = true

В таком списке будут все термины, плюс список категорий каждого.

Бывает, что код DPL вставляется на страницу заранее, ещё до того, как появляются соответствующие ему статьи. Например, на Кошачьем портале есть список персоналий-ягуаров, но пока ни одного такого фурря на ВикиФуре не описано. В таком случае DPL выдаёт техническое сообщение, означающее «ничего не найдено». Его можно заменить на собственное:

 | noresultsheader = Статей не найдено.

ВАЖНО! Кэш[править]

DPL — мощный инструмент. Многие поиски серьёзно нагружают ресурсы сервера. Чтобы поиск не выполнялся каждый раз, когда загружается страница, задайте параметры кэша:

| allowcachedresults = yes
| dplcache = какое-нибудь слово

Если на странице несколько списков DPL, то значения dplcache у них должны быть разные, иначе они все будут выглядеть одинаково.

Популярные поиски[править]

Категории русскоязычного ВикиФура устроены таким образом, чтобы их было удобно использовать и в статьях, и в списках DPL.

Однозначные категории[править]

Некоторые категории являются однозначными — в них напрямую включены все страницы, подходящие под их критерии (в отличие от, например, Кошачьих, где страницы рассортированы по вложенным категориям видов). К примеру, к таким категориям относится Персоналии: все персоналии, описанные на ВикиФуре, включены в неё, даже если они также состоят в других категориях. Чтобы отфильтровать статьи про персоналий, достаточно указать:

| category = Персоналии

Другие такие категории:

Единственное, что в некоторых случаях следует исключить из поиска — это категорию Термины, потому что некоторые термины также относятся к другим общим категориям (например, термин Ролевая система к Ролевым играм). Для этого надо добавить:

| notcategory = Термины

Среди всеобъемлющих категорий нет такой, в которой лежали бы все произведения. Чтобы найти все произведения, нужно использовать такой поиск:

| category = *Анимация{{!}}Комиксы{{!}}Художественная литература{{!}}Видеоигры{{!}}Ролевые игры

В этот поиск бывает полезно включить Театральные постановки, Журналы, Изделия и Музыку.

Поиск персонажей также имеет особенность. Если надо найти всех персонажей, следует указать:

| category = *Персонажи

Если надо исключить персонажей, следует указать:

| notcategorymatch = %ерсонажи%
| notcategory = Маскоты

Многозначные категории[править]

Некоторые категории на ВикиФуре многозначные. Например, категории по наименованиям животных (Волчьи, Кошачьи, Рептилии…) включают и персонажей, и персоналии, и расы, и вымышленных существ. Более того, во вложенных категориях располагаются все страницы, которые тесно связаны с этими животными — например, Произведения о кошачьих. Поэтому вы можете рассчитывать, что взяв категорию животного с двумя звёздочками, вы очертите всё, что касается темы этого животного на ВикиФуре.

Например:

 | category =**Волчьи

Такой критерий даст все страницы ВикиФура, относящиеся к волчьим, будь то произведения, персоналии, термины, события или сайты.

Чтобы отфильтровать список по типу статей, можно указать дополнительные категории:

 | category =**Волчьи
 | category = *Персонажи

Такой поиск даст всех персонажей-волчьих.

Кроме подкатегорий Существ, многозначными категориями являются:

  • Фэндомные категории, такие как Sonic-фэндом. В них и персоналии-участники фэндома, и фанфики, и сайты, и феномены фэндома…
  • Русскоязычное сообщество. Она включает персоналий, события, традиции, выражения, сайты…
  • Фанфики. Включает произведения, персонажей и термины.