ЧТМ:Расширения/BatchTools
| BatchTools | |
| Название | BatchTools |
|---|---|
| Тип | specialpage |
| Автор | Name |
| Описание | Предоставляет мощный графический интерфейс для массовых операций со страницами, файлами и участниками. |
| Версия | 0.9 (текущая) |
| Требования | MediaWiki 1.45.0+ |
Расширение BatchTools (Массовые инструменты) добавляет в MediaWiki служебную страницу Special:BatchTools, которая позволяет администраторам выполнять рутинные массовые операции через удобный графический интерфейс.
В отличие от многих скриптов или ботов, расширение предоставляет концепцию «Рабочей области» (Workspace) — промежуточной таблицы-буфера. Вы можете массово добавить список страниц или участников, применить к ним общие быстрые настройки (например, задать один срок блокировки для всех), затем точечно скорректировать параметры для отдельных строк и только после этого запустить процесс выполнения.
Системные требования
- MediaWiki: 1.45.0 или новее.
- PHP: Поддерживаемая версия для вашей версии MediaWiki.
- Обязательно наличие OOUI (встроено в современные версии MediaWiki по умолчанию).
Установка
- Скачайте файлы расширения и поместите их в директорию
extensions/BatchToolsвашего сервера. - Добавьте следующую строку в конец файла
LocalSettings.php: wfLoadExtension( 'BatchTools' );
- Перейдите на страницу
Special:Versionвашей вики, чтобы убедиться, что расширение успешно установлено.
Настройка прав доступа
По умолчанию само расширение не предоставляет доступ ни к одному из инструментов. Инструменты появляются на служебной странице динамически, только если у пользователя есть соответствующие права (permissions).
Расширение регистрирует 9 новых прав. Вы можете раздать их существующим группам (например, администраторам) или создать отдельную группу (например, `batch-admin`), используя файл LocalSettings.php.
Список доступных прав
| Право | Описание | Вкладка интерфейса |
|---|---|---|
deletebatch
|
Позволяет массово удалять список страниц. | Удаление |
undeletebatch
|
Позволяет массово восстанавливать удалённые страницы. | Восстановление |
protectbatch
|
Позволяет устанавливать или изменять уровни защиты сразу для множества страниц, включая каскадную защиту. | Защита |
movebatch
|
Позволяет массово переименовывать страницы (с возможностью создания редиректов и переноса подстраниц). | Переименование |
blockbatch
|
Позволяет массово блокировать учётные записи и IP-адреса (поддерживает как полные, так и частичные блокировки). | Блокировка |
unblockbatch
|
Позволяет массово снимать блокировки с участников и IP-адресов. | Разблокировка |
createaccountbatch
|
Позволяет администратору массово регистрировать новые учётные записи с заданными паролями и email-адресами. | Создание аккаунтов |
createpagebatch
|
Позволяет массово создавать новые страницы на основе единого шаблона текста и переменных. | Создание страниц |
uploadbatch
|
Позволяет загружать несколько файлов одновременно, задавая им новые имена и общие описания. | Загрузка |
Пример настройки в LocalSettings.php
Чтобы выдать права на все массовые инструменты стандартной группе администраторов (sysop), добавьте следующий код в LocalSettings.php:
$wgGroupPermissions['sysop']['deletebatch'] = true;
$wgGroupPermissions['sysop']['undeletebatch'] = true;
$wgGroupPermissions['sysop']['protectbatch'] = true;
$wgGroupPermissions['sysop']['movebatch'] = true;
$wgGroupPermissions['sysop']['blockbatch'] = true;
$wgGroupPermissions['sysop']['unblockbatch'] = true;
$wgGroupPermissions['sysop']['createaccountbatch'] = true;
$wgGroupPermissions['sysop']['createpagebatch'] = true;
$wgGroupPermissions['sysop']['uploadbatch'] = true;
Примечание: Даже если у пользователя есть право, например, deletebatch, система перед выполнением операции всё равно проверит стандартные права MediaWiki (может ли этот участник удалять конкретную страницу delete). Это гарантирует безопасность и соблюдение базовых ограничений вики.
Общий принцип работы (Рабочая область)
Одной из главных особенностей BatchTools является использование безопасной двухэтапной схемы работы, основанной на концепции «Рабочей области» (Workspace). Это защищает от случайных ошибок при массовых действиях.
Стандартный рабочий процесс для любой вкладки выглядит так:
- Блок добавления (Верхняя часть): Вы вставляете список страниц или участников (обычно по одному на строке) в большое текстовое поле. В некоторых инструментах здесь же можно указать параметры по умолчанию (например, срок блокировки или текст страницы).
- Синхронизация (Быстрые настройки): Нажатие кнопки «Применить настройки к таблице» применяет заданные вами общие параметры ко всем выбранным элементам в буфере.
- Таблица-буфер (Рабочая область): Добавленные элементы появляются в таблице ниже. На этом этапе никаких действий в вики ещё не произошло.
- Инструмент автоматически проверяет валидность данных (например, существует ли страница, которую вы хотите удалить). Невалидные строки зачёркиваются и исключаются из обработки.
- Вы можете снять галочки с отдельных строк, если передумали их обрабатывать.
- Вы можете изменить настройки для каждой конкретной строки прямо в таблице (например, переименовать одну из 100 страниц по другому правилу).
- Выполнение: Вы указываете общую причину (журналируемое действие) и нажимаете финальную кнопку выполнения.
Сохранение состояния (Session persistence): Содержимое рабочей области сохраняется в сессии вашего браузера. Если вы случайно закроете вкладку, обновите страницу или перейдёте в другой инструмент, ваша таблица и введённые в неё данные не пропадут. Для очистки буфера предусмотрена кнопка «Очистить таблицу».
Руководство по инструментам: Работа со страницами
Удаление (Delete)
Инструмент для массового удаления страниц.
- Формат ввода: Список названий страниц (по одной на строке).
- Особенности: При добавлении расширение проверит, существуют ли эти страницы. Если страница уже удалена или имеет некорректное имя, она будет отмечена красным предупреждением и заблокирована для выбора. Операция заносится в журнал удалений с указанной вами причиной.
Восстановление (Restore)
Инструмент для массового восстановления удалённых страниц.
- Формат ввода: Список удалённых страниц (по одной на строке).
- Особенности: Расширение проверяет техническую корректность названия страницы. При выполнении восстанавливаются все удалённые правки и версии файлов, привязанные к данному названию. Если страница не была удалена (или у неё нет удалённых ревизий), система сообщит об этом в отчёте после выполнения.
Защита (Protect)
Инструмент для массового изменения уровня защиты страниц.
- Формат ввода: Список названий страниц (по одной на строке).
- Быстрые настройки: Вы можете выбрать уровень защиты для действий «Правка» и «Переименование», а также задать срок окончания защиты. Доступные уровни (например, Только автоподтверждённые или Только администраторы) автоматически подгружаются из настроек вашей вики (
$wgRestrictionLevels). - Особенности:
- Поддерживается включение/выключение Каскадной защиты (Cascade protection).
- В таблице-буфере можно задать уникальный уровень или срок защиты для каждой отдельной страницы перед выполнением.
Переименование (Move)
Инструмент для массового переименования страниц.
- Формат ввода: Записи в формате
Старое название|Новое название(по одной на строке). Если указать просто старое название (без|), в качестве нового будет подставлено оно же (это полезно, чтобы затем вручную прописать новые имена прямо в таблице). - Быстрые настройки:
- Оставить перенаправление (Leave redirect): Да / Нет.
- Переименовать подстраницы (Move subpages): Да / Нет.
- Особенности:
- В рабочей таблице для каждой страницы есть отдельное текстовое поле «Новое название», что позволяет быстро редактировать имена на лету.
- Защита от дурака: система выдаст ошибку, если старое и новое имя совпадают, если новое имя некорректно, или если целевая страница уже существует (API MediaWiki безопасно отклонит такое действие).
Руководство по инструментам: Работа с участниками
Блокировка (Block)
Один из самых продвинутых инструментов расширения, позволяющий настраивать гибкие ограничения сразу для списка пользователей или IP-адресов.
- Формат ввода: Список имён участников или IP-адресов (по одному на строке).
- Быстрые настройки: Блок настроек разделён на две части, зависящие от выбранного типа блокировки («Во всём проекте» или «Частичная»).
- Глобальные опции: Запрет на создание учётных записей, отправку email, правку своей страницы обсуждения. Для IP можно включить автоблокировку и жёсткую блокировку (hardblock). Для бессрочных блокировок доступна опция скрытия имени участника (hideuser).
- Частичная блокировка: Позволяет заблокировать правки только на определённых страницах (названия через запятую) или в определённых пространствах имён (ID пространств через запятую). Дополнительно можно запретить конкретные действия: загрузку файлов, переименование, создание страниц или отправку благодарностей.
- Особенности:
- В таблице-буфере для каждой строки есть кнопка «Опции ▾». При нажатии на неё разворачивается детальная панель, где можно переопределить все настройки блокировки (включая страницы для частичной блокировки) индивидуально для каждого участника.
- Инструмент автоматически проверяет, существует ли пользователь (если это не IP). Несуществующие пользователи помечаются ошибкой и не блокируются.
Разблокировка (Unblock)
Простой инструмент для массового снятия блокировок.
- Формат ввода: Имя участника или IP-адрес (по одному на строке).
- Особенности: Снимает активную блокировку с указанием причины в журнале. Если участник не был заблокирован, операция будет безопасно пропущена.
Создание аккаунтов (Create Accounts)
Инструмент для массовой регистрации новых участников администратором (записи в журнале помечаются как созданные другим пользователем).
- Формат ввода: Записи в формате
Имя|Пароль|Email(по одной на строке). Поля разделяются вертикальной чертой. Email указывать не обязательно. - Быстрые настройки: Поле «Установить один пароль для всех». Если вы хотите сгенерировать аккаунты с одинаковым временным паролем (например, для студентов или сотрудников), введите его здесь и нажмите синхронизацию.
- Особенности:
- В таблице предусмотрена встроенная проверка (валидация). Если пароль для аккаунта остался пустым, поле подсветится красным, а кнопка выполнения будет заблокирована, чтобы предотвратить ошибки API.
- Создание происходит с использованием безопасного API
AuthManager.
Руководство по инструментам: Создание контента
Создание страниц (Create Pages)
Инструмент для массовой генерации однотипных страниц на основе шаблона и переменных (полезно для создания сотен карточек товаров, городов, заготовок статей).
- Формат ввода: Записи в формате
Название страницы|Переменная 1|Переменная 2|Переменная 3. - Шаблонизатор: В поле «Общий текст» вы пишете вики-разметку будущей страницы. Там, где должны быть уникальные данные из таблицы, используйте маркеры
$1,$2и$3. - Особенности:
- Живой предпросмотр (Live-preview): В таблице-буфере вы можете развернуть детали строки и увидеть итоговый вики-текст страницы. Если вы измените переменную в таблице, текст моментально обновится!
- Защита от перезаписи: По умолчанию инструмент игнорирует (выдаёт ошибку) страницы, которые уже существуют. Но если поставить галочку «Перезаписывать существующие», инструмент обновит текст существующих страниц (работает как обычная правка).
Загрузка файлов (Upload)
Единственный инструмент, который работает не через текстовое поле, а напрямую с файловой системой вашего компьютера.
- Формат выбора: Нажмите кнопку «Выбрать файлы» и выделите нужное количество изображений или документов в диалоговом окне операционной системы (можно выбирать сразу несколько файлов).
- Быстрые настройки:
- Общее описание: Позволяет задать одинаковый текст (например, лицензию или категории) для всех загружаемых файлов.
- Игнорировать предупреждения: Позволяет загружать файлы, даже если MediaWiki ругается на дубликаты.
- Особенности:
- В рабочей таблице инструмент показывает размер файлов.
- Вы можете изменить Конечное имя файла прямо в таблице. Например, если вы выбрали файл
IMG_2023.jpg, вы можете переименовать его вЛоготип_компании.jpgперед загрузкой на сервер. Инструмент автоматически очистит префиксы вродеФайл:, если вы случайно их скопируете.
| BatchTools | |||
|---|---|---|---|
|
|||