|
|
(не показано 19 промежуточных версий этого же участника) |
Строка 1: |
Строка 1: |
− | Ссылка на SVN исходников: {{SVN|vitalif/trunk/MediaWiki-SubPageList2/}}.
| + | #REDIRECT [[4intranet:TemplatedPageList]] |
− | | + | |
− | На основе расширения MediaWiki [[mediawikiwiki:Extension:SubPageList2|SubPageList2]] в [[{{SITENAME}}]] я породил собственную вариацию на тему SubPageList’а — его можно было бы назвать «TemplatedPageList». По сути расширение продолжает серию расширений, направленных в сторону вики-программирования, что идеологически ещё неизвестно, хорошо ли, нет ли.
| + | |
− | | + | |
− | Так или иначе, код расширения переписан в хлам — предыдущий автор, видимо, был, во-первых, C’шник, а во-вторых, большой любитель избыточности в духе округления целых чисел (<tt>round(intval($options['count']))</tt>). ''(а ещё - пробелов после открывающихся и до закрывающихся скобочек... брррр).'' Всё это было выгашено из кода сраной метлой, показатель — количество строк кода, уменьшившееся почти в два раза — с примерно 680 до примерно 350 строк.
| + | |
− | | + | |
− | == Список изменений ==
| + | |
− | | + | |
− | Функционала при этом стало больше:
| + | |
− | | + | |
− | * Опция <tt>category=</tt> теперь ведёт себя более разумно — ограничивает выбираемый список категорией. Кроме того, выбирать теперь можно как по префиску, так и по категории БЕЗ указания префикса.
| + | |
− | * Добавлена опция <tt>offset=</tt>, позволяющая указывать не только максимальное количество выбираемых страниц, а также и «смещение» от начала списка.
| + | |
− | * Теперь разрешается выборка из всех пространств имён сразу: <tt>namespace=""</tt>.
| + | |
− | * Теперь разрешается выборка не только ''подстраниц'', а вообще страниц по любому префиксу названия(опция <tt>parent=</tt>).
| + | |
− | * Опция <tt>deepness=</tt> теперь, во-первых, работает корректно, а во-вторых, допускает значение-диапазон: <tt>deepness=1..2</tt> — то есть, можно накладывать ограничение уровня вложенности на выбираемые страницы. Если <tt>deepness=</tt> просто числу — оно воспринимается, как ''минимальная'' вложенность.
| + | |
− | * Добавлено препроцессирование кода включаемых страниц, то есть корректная обработка [[mediawikiwiki:Help:Magic Words/ru|магических слов]] (типа PAGENAME и REVISIONDAY) и тегов <tt><nowiki><noinclude></nowiki></tt> и <tt><nowiki><includeonly></nowiki></tt>.
| + | |
− | * Добавлен метод сортировки списка страниц по количеству посещений — <tt>ordermethod=pagecounter</tt>.
| + | |
− | * Исправлена ошибка, возникавшая при просмотре различий по странице, использующей тег <tt><nowiki><subpages></nowiki></tt>.
| + | |
− | * Вывод расширения больше не кэшируется и нет нужды нажимать «Обновить» или пересохранять статью, чтобы увидеть изменения. Нет ошибок с подстановкой UNIQ… в текст статьи.
| + | |
− | | + | |
− | == Шаблонизированный вывод ==
| + | |
− | | + | |
− | Но самое главное, что расширение теперь работает на шаблонах — оцпией <tt>template=</tt> передаётся имя шаблона, который будет обработан для каждой страницы и дописан в текст.
| + | |
− | | + | |
− | Шаблону передаются следующие параметры:
| + | |
− | | + | |
− | ;index: Номер страницы в списке, начиная с 0.
| + | |
− | ;number: Номер страницы в списке, начиная с 1.
| + | |
− | ;odd: 1, если номер страницы нечётный (начиная с 1), и 0 иначе.
| + | |
− | ;title_full: Полное название страницы.
| + | |
− | ;title: Полное название без пространства имён.
| + | |
− | ;title_rel: Название страницы без названия родительской страницы.
| + | |
− | ;title_last: Последняя секция названия страницы (да, я знаю, что это можно сделать через [[mediawikiwiki:Extension:ParserFunctions|Parser Functions]]).
| + | |
− | ;content: Полное содержимое страницы.
| + | |
− | ;first_section: Первая секция страницы.
| + | |
− | ;has_more: 1, если страница имеет секции, кроме первой, и 0 иначе.
| + | |
− | | + | |
− | == TODO ==
| + | |
− | | + | |
− | Что ещё хотелось бы сделать (а возможно, я это и сделаю в ближайшее время):
| + | |
− | | + | |
− | * Отслеживать вхождения <subpages> на страницах и сохранять их в БД, а при добавлении и изменении страниц автоматически менять зависимые страницы.
| + | |
− | * Немного переименовать параметры шаблона, дабы они стали более «стандартными»: не <tt>title_full</tt>, а <tt>fullpagename</tt> и т. п.
| + | |
− | | + | |
− | [[Категория:Разработка]]
| + | |
− | [[Категория:MediaWiki]] | + | |