Викиновости:DynamicPageList

↱ ВН:DPL
ВН:ДСС

DynamicPageList (DPL; динамический список страниц) — это расширение для Mediawiki 1.5 и более поздних версий, специально разработанное для использования в Викиновостях (см. например Викиновости:2006/август), которое, однако, может быть установлено на любую вики. Его официальное название было изменено на Intersection во избежание путаницы с похожим, но другим расширением DynamicPageList2. Тем не менее оно и сейчас часто называется DynamicPageList. Расширение в настоящее время также работает на Мета-вики, в Викиучебнике и некоторых других вики Фонда Викимедия (не в Википедии). Оно позволяет редакторам вики создавать списки страниц, которые входят в определённые категории. Позже были разработаны расширенные версии этого расширения: mw:Extension:DynamicPageList (последняя версия) и mw:Extension:DynamicPageList2 (промежуточная версия), но они недоступны в Викиновостях и вряд ли когда-либо будут (при этом они супер-классные!). См. http://semeb.com/dpldemo/index.php/Main_Page для более подробной информации об этих версиях.

Расширение доступно в SVN как mediawiki/trunk/extensions/intersection/DynamicPageList.php. Чтобы установить его, поместите файл в ваше папку extensions/ и добавьте include("extensions/DynamicPageList.php"); в ваш файл LocalSettings.php. Он был отключен (см. T287362).

Использование DynamicPageList

править

Dynamic Page List (DPL) — это расширение для MediaWiki. Для его применения используйте следующий XML-подобный синтаксис на своих вики-страницах:

<DynamicPageList>
...параметры...
</DynamicPageList>

На выходите вы получите что-то вроде:

  • [[Страница 1]]
  • [[Страница 2]]

где список страниц, а также их порядок и отображение определяются указанными параметрами.

Ниже приведены параметры и эффект, который они оказывают

Выбор страницы

править
Цель
DPL выдаёт список всех страниц на пересечении указанных категорий (страниц, которые находятся во всех из указанных категорий).
Синтаксис
category = название категории
Пример
<DynamicPageList>
category = Африка
category = Политика
</DynamicPageList>

В списке будут страницы, которые включены в обе категории: [[Категория:Африка]] и [[Категория:Политика]].

Примечания
Как минимум один параметр категории необходим. Максимальное число параметров категории, которое позволяет расширение, настраивается во время его установки (см. вверху файла расширения). Вы можете использовать магические слова (переменные) вроде {{CURRENTMONTHNAME}}, {{CURRENTDAY}}, {{CURRENTYEAR}}, {{PAGENAME}} и т. п. в названиях категория. Вы также можете использовать шаблоны, если хотите, в т. ч. шаблоны с параметрами (например, см. en:Portal:Random). Также, если вы хотите сделать DPL, включаемый в другую страницу с параметрами (вроде category={{{1}}}), вам следует использовать синтаксис {{#tag:....

notcategory

править
Цель
Ограничить списка страницами, не входящими в указанную категорию.
Синтаксис
notcategory = название категории
Пример
<DynamicPageList>
category    = Африка
notcategory = Зимбабве
</DynamicPageList>

В списке будут страницы, которые включены в [[Категория:Африка]] но не включены в [[Категория:Zimbabwe]].

Примечание
Вы можете использовать магические слова вроде {{CURRENTMONTHNAME}}, {{CURRENTDAY}}, {{CURRENTYEAR}} и т. п. в названиях категорий.
Цель
Ограничить список страницами указанного пространства имён.
Синтаксис
namespace = id или имя пространства имён

ID пространства имён может быть любым положительным целым или нулём, если он соответствует корректному пространству имён в системе. Ноль соответствует основному пространству статей.

Также вы можете указать название вместо номера, например «Обсуждение», «Шаблон» или «Обсуждение участника». Любое неверное название соответствует основному пространству статей.

Пример
<DynamicPageList>
category  = Правила
namespace = Викиновости
</DynamicPageList>

В этом списке будут страницы из пространства имён «Викиновости», которые находятся в [[Категория:Правила]].

Цель
Регулировать включение или исключение перенаправлений из списка.
Синтаксис
redirects = критерий

критерий может быть одним из:

  • exclude — исключает перенаправления из списка (по умолчанию)
  • include — включает перенаправления в список
  • onlyтолько перенаправления в списке
Пример
<DynamicPageList>
category  = Африка
redirects = include
</DynamicPageList>

В списке будут страницы и перенаправления, которые включены в [[Категория:Африка]].

Цель
Ограничить количество выводимых результатов.
Синтаксис
count = количество результатов
Пример
<DynamicPageList>
category = Африка
count    = 2
</DynamicPageList>

В списке будут последние две страницы, которые включены в [[Категория:Африка]].

Примечание
Максимальное допустимое число результатов контролируется настройкой расширения.

Детальное отображение

править

shownamespace

править
Цель
Определяет, показывать пространство имён для страниц или нет (по умолчанию показывает — значение true).
Синтаксис
shownamespace = false

Например, вместо «Шаблон:Stub» в списке будет просто «Stub».

Пример
<DynamicPageList>
category      = Африка
namespace     = Обсуждение
shownamespace = false
</DynamicPageList>

В списке будут все страницы обсуждений из [[Категория:Африка]], показанные без «Обсуждение:» перед названиями страниц.

addfirstcategorydate

править
Цель
Показывает дату, когда статья была включена в первую из указанных категорий.
Синтаксис
addfirstcategorydate = true
Если не указан, то по умолчанию равен false.
Пример
<DynamicPageList>
category             = Россия
category             = Турция
addfirstcategorydate = true
</DynamicPageList>

даёт

<DynamicPageList> category = Россия category = Турция addfirstcategorydate = true </DynamicPageList> (вероятно, нижней границей является 2 июля 2005)

В списке будут страницы, которые включены в [[Категория:Африка]]. При выводе перед каждой будет добавлено «ДД месяца ГГГГ: » (формат даты зависит от локальных настроек отображения даты в MediaWiki).

Цель
Регулировать стиль вывода списков: с маркерами, числами или без всего.
Синтаксис
mode = название мода

название мода может быть одним из:

  • unordered — выводит маркированный список — HTML-тег «ul» (по умолчанию)
  • ordered — выводит нумерованный список — HTML-тег «ol»
  • none — выводит список с использованием переводов строк и HTML-тегов «br» для отделения каждого элемента
Пример
<DynamicPageList>
category = Африка
mode     = ordered
</DynamicPageList>

Будут выбраны страницы, содержащие [[Категория:Африка]], и показаны в списке <ol>…</ol>.

suppresserrors

править
Цель
Позволяет подавлять уведомления о пустых списках.
Синтаксис
suppresserrors = true
Если не указан, то по умолчанию равен false.
Пример
<DynamicPageList>
category       = Несуществующая
suppresserrors = true
</DynamicPageList>

В списке не будет страниц, т. к. категория не существует, но сообщение о том, что список пуст, также не будет показано.

Сообщения об ошибках могут изменяться через следующие системные сообщения:

Первоначально этот параметр использовался в Викиновостях очень активно, так как сообщение об ошибке, что статей нет, было очень загадочным и уродливым. Сейчас мы изменили сообщение об ошибке на более дружелюбное, поэтому использование этого параметр уже не так важно. Тем не менее, он по-прежнему широко используется.

Цель
Ссылки содержат уникальный идентификатор страницы (нужно для некоторых веб-пауков, ссылающихся напрямую страницу, если она была переименована или заголовок указан неверно [1]). Это обычно используется для новостных пауков Гугла, которым нужен уникальны идентификатор в URL для каждой страницы. Этот параметр не влияет на внешний вид, только на адрес ссылки.
Синтаксис
showcurid = true
Если не указан, то по умолчанию равен false.
Пример
<DynamicPageList>
category  = Опубликовано
showcurid = true
</DynamicPageList>
Пример

Если бы статья «На Северном полюсе осталась только льдина» была в списке без параметра, ссылка на неё была бы http://ru.wikinews.org/wiki/На_Северном_полюсе_осталась_только_льдина. С параметром же ссылка будет http://ru.wikinews.org/wiki/На_Северном_полюсе_осталась_только_льдина?curid=7819.

FlaggedRevisions

править

Позволяет регулировать включение страниц, помеченных как досмотренные (sighted), стабильные (stable) и/или качественные (quality)

stablepages

править
stablepages = фильтр

фильтр может быть:

  • exclude — исключает стабильные страницы из списка (по умолчанию, если указано неверное значение)
  • include — включает стабильные страницы в список (по умолчанию)
  • onlyтолько стабильные страницы в списке

qualitypages

править
qualitypages = фильтр

фильтр может быть:

  • exclude — исключает качественные страницы из списка (по умолчанию, если указано неверное значение)
  • include — включает качественные страницы в список (по умолчанию)
  • onlyтолько качественные страницы в списке

Порядок вывода

править

ordermethod

править
Цель
Определяет, какие данные использовать для определения порядка вывода страниц в списке.
Синтаксис
ordermethod = метод

метод может быть одним из:

  • categoryadd — сортирует по порядку добавления в первую категорию (по умолчанию)
  • lastedit — сортирует по времени последней правки страницы
Пример
<DynamicPageList>
category             = Африка
ordermethod          = lastedit
addfirstcategorydate = true
count                = 3
</DynamicPageList>

даёт

<DynamicPageList> category = Африка ordermethod = lastedit addfirstcategorydate = true count = 3 </DynamicPageList> Имейте в виду, что это порядок сортировки по дате последнего редактирования (или для категории, видимо, последние изменения страницы из этой категории), причем последние редактировавшиеся страницы сверху, когда отображаемая дата заключается в дополнении к категории Африка.

в свою очередь

<DynamicPageList>
category             = Африка
ordermethod          = addcategory
addfirstcategorydate = true
count                = 3
</DynamicPageList>

даёт

<DynamicPageList> category = Африка ordermethod = addcategory addfirstcategorydate = true count = 3 </DynamicPageList>

Цель
Управлять порядком сортировки списка.
Синтаксис
order = направление сортировки

направление сортировки может быть:

  • descending — от более новых к более старым (по умолчанию)
  • ascending — от более старых к более новым
Пример
<DynamicPageList>
category = Африка
order    = ascending
</DynamicPageList>

В списке будут страницы, которые включены в [[Категория:Африка]], показанные в порядке от самой давней до самой новой.

См. также

править
Примечание
расширения, указанные ниже, тут не установлены (но интересны для ознакомления)