SubPageList (MediaWiki)

Материал из YourcmcWiki
Версия от 04:21, 8 ноября 2009; VitaliyFilippov (обсуждение | вклад)

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

Ссылка на SVN исходников: http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/MediaWiki-SubPageList2/.

На основе расширения MediaWiki SubPageList2 в YourcmcWiki я породил собственную вариацию на тему SubPageList’а — его можно было бы назвать «TemplatedPageList». По сути расширение продолжает серию расширений, направленных в сторону вики-программирования, что идеологически ещё неизвестно, хорошо ли, нет ли.

Так или иначе, код расширения переписан в хлам — предыдущий автор, видимо, был, во-первых, C’шник, а во-вторых, большой любитель избыточности в духе округления целых чисел. Всё это было выгашено из кода сраной метлой, показатель — количество строк кода, уменьшившееся почти в два раза — с 686 до 347 строк. Поведение опции category= было изменено в сторону более очевидного — в сторону ограничения выбираемого списка категорией, и выбирать теперь стало можно только по категории, а не обязательно по префиксу (родительской странице). Также была добавлена опция offset=, позволяющая указывать не только максимальное количество выбираемых страниц, а также и «смещение» от начала списка. Кроме того, было добавлено препроцессирование кода включаемых страниц, что означает правильную обработку магических слов типа REVISIONDAY.

Но это всё не главное: главное, что расширение теперь работает на шаблонах — оцпией template= передаётся имя шаблона, который будет обработан для каждой страницы и дописан в текст.

Шаблону передаются следующие параметры:

index
Номер страницы в списке, начиная с 0.
number
Номер страницы в списке, начиная с 1.
odd
1, если номер страницы нечётный (начиная с 1), и 0 иначе.
title_full
Полное название страницы.
title
Полное название без пространства имён.
title_rel
Название страницы без названия родительской страницы.
title_last
Последняя секция названия страницы (да, я знаю, что это можно сделать через Parser Functions).
content
Полное содержимое страницы.
first_section
Первая секция страницы.
have_next
1, если страница имеет секции, кроме первой, и 0 иначе.