Этот модуль зависит от следующих других модулей: |
Этот модуль оценен как готовый к общему использованию . Он достиг зрелой формы и считается относительно свободным от ошибок и готовым к использованию везде, где это необходимо. Он готов упоминаться на страницах справки и других ресурсах Википедии как вариант для изучения новыми пользователями. Чтобы уменьшить нагрузку на сервер и плохой вывод, его следует улучшить с помощью тестирования в песочнице, а не повторного редактирования методом проб и ошибок. |
Этот модуль подлежит защите страницы . Это хорошо заметный модуль, который используется на очень большом количестве страниц или очень часто заменяется . Поскольку вандализм или ошибки могут повлиять на многие страницы, и даже простое редактирование может вызвать значительную нагрузку на серверы, они защищены от редактирования. |
Этот модуль Lua используется примерно на 38 000 страницах, и изменения могут быть широко заметны. Протестируйте изменения на подстраницах модуля / sandbox или / testcases или в собственной изолированной программной среде модуля . Обсудите изменения на странице обсуждения, прежде чем внедрять их. |
Этот модуль создает окно сообщения, используемое для запроса изменений на защищенных страницах. Запросы на редактирование могут быть сделаны для полностью защищенных, защищенных шаблонами и полузащищенных страниц, а также можно запросить редактирование сразу для нескольких страниц.
Этот модуль следует использовать на странице обсуждения редактируемой страницы. Если вы не можете разместить его прямо на этой странице обсуждения, вы можете указать страницу для редактирования с позиционными параметрами. Вы также можете указать несколько страниц для редактирования, если это удобнее, чем создание нескольких запросов на редактирование в разных местах.
Синтаксис
Модуль имеет пять функций, по одной для каждого доступного уровня защиты:
Функция | Уровень защиты | Шаблон |
---|---|---|
interface | CSS / JS защита | {{ редактировать защищенный интерфейс }} |
full | Полная защита | {{ редактировать полностью защищенные }} |
template | Защита шаблона | {{ редактировать защищенный шаблоном }} |
extended | Расширенная подтвержденная защита | {{ редактировать расширенную-защищенную }} |
semi | Полузащита | {{ редактировать полузащищенные }} |
- Основное использование
{{#invoke: защищенный запрос на редактирование | функция }}
- Укажите страницы для редактирования
{{#invoke: защищенный запрос на редактирование | функция | Первая страница для редактирования | Вторая страница для редактирования | ...}}
- Деактивировать запрос
{{#invoke: защищенный запрос на редактирование | функция | ответила = да }}
- Принудительно установить уровень защиты запроса, а не разрешать автоматическое обнаружение
{{#invoke: защищенный запрос на редактирование | функция | force = yes }}
- Все параметры
{{#invoke: защищенный запрос на редактирование | функция | Первая страница для редактирования | Вторая страница для редактирования | Третья страница на редактировании | ...| ответил =| ans =| демо =| сила =}}
Категории
Шаблон классифицирует страницу в зависимости от уровня защиты редактируемых страниц.
Модуль пытается определить уровень защиты используемых страниц. Если одна или несколько страниц не защищены или указано несколько страниц с разными уровнями защиты, страница попадает в категорию « Категория: запросы на редактирование Википедии, возможно, с использованием неправильных шаблонов» . В противном случае, если параметр force не установлен, ему автоматически присваивается правильный уровень защиты.
require ( 'Модуль: без глобальных переменных' )local yesno = require ( 'Модуль: Да нет' )local makeMessageBox = require ( 'Модуль: окно сообщения' ). основнойлокальный getArgslocal activeBox - лениво инициализируется, если мы получаем активный запрос-------------------------------------------------- --------------------- Определение класса коробки-------------------------------------------------- --------------------локальный ящик = {}коробка . __index = коробкафункциональная коробка . новый ( ProtectionType , args )local obj = {}OBJ . args = argssetmetatable ( объект , поле )OBJ . tmboxArgs = {} - используется для хранения аргументов, передаваемых tmbox методом box: export.- Установить поля данных.OBJ . tmboxArgs . attrs = { [ 'data-origlevel' ] = protectionType }вернуть объектконецфункциональное окно : setArg ( ключ , значение )- Устанавливает значение, которое будет передано tmbox.если ключ, тоя . tmboxArgs [ ключ ] = значениеконецконецфункциональное окно : экспорт ()если не мв . название . getCurrentTitle (). isTalkPage, а не себя . аргументы . демо тогдаreturn '<span class = "error"> Ошибка: защищенные запросы на редактирование можно делать только на странице обсуждения. </span> [[Категория: страницы без обсуждения с шаблоном запроса на редактирование]]'конец- Строка вместе предоставленных названий страницместные названия = {}для k , v в парах ( self . args ) делаемесли type ( k ) == 'number', тоtable.insert ( заголовки , self . args [ k ])конецконецлокальные страницы Текстесли # заголовков == 0, тоpagesText = ''ELSEIF # названия == 1 и MW . название . getCurrentTitle (). subjectPageTitle . Полный текст == названия [ 1 ] тогдаpagesText = ''еще для i , v в парах ( названиях ) делаем если я == 1, то pagesText = 'к [[:' .. v .. ']]' elseif i == # заголовков, тогда pagesText = pagesText .. 'и [[:' .. v .. ']]' еще pagesText = pagesText .. ', [[:' .. v .. ']]' конецконецконецself : setArg ( 'smalltext' , "Это [[Википедия: запросы на редактирование | запрос на редактирование]]" .. pagesText .."получен ответ. Установите <code style = \" white-space: nowrap; \ " > & # 124; ответил & # 61; </code> или <code style = \" white-space: nowrap; \ " > & # 124; ans & # 61; </code> в '' 'no' '', чтобы повторно активировать ваш запрос." )self : setArg ( 'маленький' , правда )сам : setArg ( 'класс' , 'editrequest' )вернуть makeMessageBox ( 'tmbox' , self . tmboxArgs )конец-------------------------------------------------- --------------------- Обрабатывать аргументы и инициализировать объекты-------------------------------------------------- --------------------местный p = {}функция p . _main ( тип защиты , аргументы )local boxType = коробкаесли не YesNo ( Args . отвеченные вопросы или Args . анс , правда ) , тоесли не activeBox, тоactiveBox = require ( 'Модуль: защищенный запрос на редактирование / активный' ) ( box , yesno , makeMessageBox )конецboxType = activeBoxконецлокальная requestBox = boxType . новый ( ProtectionType , args )вернуть requestBox : export ()конецместный mt = {}функция mt . __index ( t , k )если не getArgs, тоgetArgs = require ( 'Модуль: аргументы' ). getArgsконец функция возврата ( фрейм )возврат т . _main ( k , getArgs ( frame , { wrappers = { 'Шаблон: Редактировать полностью защищенный' , 'Шаблон: Редактировать полузащищенный' , 'Шаблон: Редактировать защищенный шаблон' , 'Шаблон: Редактировать расширенный-защищенный » , ' Шаблон : Редактировать interface-protected ' }}))конецконецвернуть setmetatable ( p , mt )