Викиновости:DynamicPageList
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]]
- …
где список страниц, а также их порядок и отображение определяются указанными параметрами.
Ниже приведены параметры и эффект, который они оказывают
Выбор страницы
правитьcategory
править- Цель
- 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
править- Цель
- Ограничить список страницами указанного пространства имён.
- Синтаксис
namespace = id или имя пространства имён
ID пространства имён может быть любым положительным целым или нулём, если он соответствует корректному пространству имён в системе. Ноль соответствует основному пространству статей.
Также вы можете указать название вместо номера, например «Обсуждение», «Шаблон» или «Обсуждение участника». Любое неверное название соответствует основному пространству статей.
- Пример
<DynamicPageList> category = Правила namespace = Викиновости </DynamicPageList>
В этом списке будут страницы из пространства имён «Викиновости», которые находятся в [[Категория:Правила]].
redirects
править- Цель
- Регулировать включение или исключение перенаправлений из списка.
- Синтаксис
redirects = критерий
критерий может быть одним из:
- exclude — исключает перенаправления из списка (по умолчанию)
- include — включает перенаправления в список
- only — только перенаправления в списке
- Пример
<DynamicPageList> category = Африка redirects = include </DynamicPageList>
В списке будут страницы и перенаправления, которые включены в [[Категория:Африка]].
count
править- Цель
- Ограничить количество выводимых результатов.
- Синтаксис
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
править- Цель
- Регулировать стиль вывода списков: с маркерами, числами или без всего.
- Синтаксис
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>
В списке не будет страниц, т. к. категория не существует, но сообщение о том, что список пуст, также не будет показано.
Сообщения об ошибках могут изменяться через следующие системные сообщения:
- MediaWiki:Intersection noincludecats
- MediaWiki:Intersection toofewcats
- MediaWiki:Intersection toomanycats
- MediaWiki:Intersection noresults
Первоначально этот параметр использовался в Викиновостях очень активно, так как сообщение об ошибке, что статей нет, было очень загадочным и уродливым. Сейчас мы изменили сообщение об ошибке на более дружелюбное, поэтому использование этого параметр уже не так важно. Тем не менее, он по-прежнему широко используется.
showcurid
править- Цель
- Ссылки содержат уникальный идентификатор страницы (нужно для некоторых веб-пауков, ссылающихся напрямую страницу, если она была переименована или заголовок указан неверно [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
править- Цель
- Управлять порядком сортировки списка.
- Синтаксис
order = направление сортировки
направление сортировки может быть:
- descending — от более новых к более старым (по умолчанию)
- ascending — от более старых к более новым
- Пример
<DynamicPageList> category = Африка order = ascending </DynamicPageList>
В списке будут страницы, которые включены в [[Категория:Африка]], показанные в порядке от самой давней до самой новой.
См. также
править- Исходный код
- en:Wikinews:Technical solutions/DynamicPageList
- Официальная документация (устарела по сравнению с этой страницей)
- Примечание
- расширения, указанные ниже, тут не установлены (но интересны для ознакомления)