Модуль:R избежал двойного перенаправления


Постоянно защищенный модуль
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

местный  р  =  {}локальная  функция  noredir ( страница )локальная  ссылка  =  страница : fullUrl ( "redirect=no" )return  "<span class= \" plainlinks \" >["  ..  ссылка  ..  " "  ..  страница . полный текст  ..  "]</span>"конецфункция  р . основная ( рама )локальные  аргументы  =  требуют ( "Модуль:Аргументы" ). getArgs ( frame ,  { removeBlanks = false })-- Демонстрационные параметры, для демонстрации поведения с определенным перенаправлением-- цели и избегание категоризации (не использовать в статьях)локальный  noError  =  аргументы . Нет ошибоклокальная  демонстрация  =  аргументы . demo  или  noError  или  args . thistarget  или  аргументы . другая цельлокальная  функция  formatError ( ошибка )return  "<span class= \" error \" >Ошибка в [[Модуле:R избежать двойного перенаправления]]: "  ..  err  ..  "</span>"..  ( демонстрация  и  ""  или  "[[Категория: Предотвращено двойное перенаправление/ошибка]]" )конецместная  эта страница  =  mw . название . получить текущий заголовок ()локальная  другая страница  =  mw . название . новый ( аргументы [ 1 ]  или  "" )если  не  другая страница,  тоreturn  formatError ( "Другая страница не указана." );конецесли  мв . название . равно ( thisPage ,  otherPage ) ,  тоreturn  formatError ( "В качестве параметра была передана текущая страница." );конец-- Получить объекты mw.title для целей перенаправления.-- Обратите внимание, что использование redirectTarget mw.title будет правильно обрабатывать режим предварительного просмотра, в отличие от Module:Redirect.местный  thisTarget ,  другойTargetесли  демо  и  аргументы . эта цель  тогда эта цель =  мв . название . новый ( аргументы . thistarget )ещеэта цель  = эта  страница . цель перенаправленияконецесли  демо  и  аргументы . другая цель  тогдадругая цель  =  mw . название . новый ( аргументы . другая цель )ещедругая цель  =  другая страница . цель перенаправленияконец-- Для двойной переадресацииlocal  thisDoubleTarget  =  thisTarget  и  thisTarget . цель перенаправленияlocal  otherDoubleTarget  =  otherTarget  и  otherTarget . цель перенаправлениялокальная  функция  formatOutput ( обновление ,  информация )местный  из ,  кошкаесли  другая цель ,  тоfrom  =  "альтернативный заголовок для '''"  ..  noredir ( otherPage )  ..  "''', другой редирект на тот же заголовок"ещеfrom  =  "альтернативный заголовок для '''[[:"  ..  otherPage . fullText  ..  "]]''', бывшая переадресация на тот же заголовок"конецcat  =  demo  и  ""  или  update  и  "Избегайте двойных перенаправлений для обновления"  или  "Избегайте двойных перенаправлений" кадр возврата : expandTemplate ({title  =  "Шаблон перенаправления" ,аргументы  =  {id  =  'R избежал двойного перенаправления' ,от  =  от ,информация  =  обновление  и  " \n **"  ..  информация  или  информация ,[ "все категории" ]  =  кошка ,name  =  "Из предотвращенного двойного перенаправления"}})конецесли  нет ошибок  то-- Игнорировать все возможные ошибки, чтобы пример использования отображался в верхней части [[Шаблон:R избежать двойного перенаправления]]ещеесли  не  эта цель,  тоreturn  formatError ( «Эта страница не является перенаправлением.» ,  демо )конецесли  мв . название . равно ( thisPage ,  thisTarget ) ,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >Это неверная переадресация (она перенаправляет на себя).</span>" )конецесли  не  эта цель . существует  тогдаreturn  formatOutput ( true ,  "<span class= \" error \" >Это неверный редирект (его цель не существует).</span>" )конецесли  не  другая страница . существует  тогдаreturn  formatOutput ( true ,  "<span class= \" error \" >[[:"  ..  otherPage .fullText .. "]] не существует.</span> " )  конецесли  otherTarget  и  mw . название . равно ( otherPage ,  otherTarget ) ,  тогдаreturn  formatOutput ( true ,  "<span class= \" error \" >[[:"  ..  otherPage .fullText .. "]] является неработающим перенаправлением (перенаправляет на себя).</span> " )  конецесли  otherTarget ,  а  не  otherTarget . существует  тогдаreturn  formatOutput ( true ,  "<span class= \" error \" >[[:"  ..  otherPage . fullText  ..  "]] является неработающим перенаправлением (перенаправляет на несуществующую страницу).</span> " )конецесли  мв . название . равно ( thisTarget ,  otherPage ) ,  тоесли  не  другая цель,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >[[:"  ..  otherPage .fullText .. "]] не является редиректом, и this уже указывает на него.</span> Скорее всего этот шаблон должны быть удалены». )  конецесли  мв . название . равно ( otherTarget ,  thisPage ) ,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >Это циклическое перенаправление.</span> Измените цель как этого перенаправления, так и "  ..  noredir ( otherPage )  ..  " на правильную статью. " )конецreturn  formatOutput ( true ,  "<span class= \" error \" >Эта страница перенаправляется на "  ..  noredir ( otherPage )  ..  ", который перенаправляет на [[:"  ..  otherTarget .fullText .. "]] . < /span> Измените цель этого перенаправления на [[:" .. otherTarget .fullText .. "]] или иным образом разрешите ситуацию. " )      конецесли  не  другая цель,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >[[:"  ..  otherPage . fullText  ..  "]] не является перенаправлением.</span> Скорее всего, это перенаправление следует обновить, чтобы оно указывало на [ [:"  ..  otherPage . fullText  ..  "]] теперь, когда это больше не перенаправление, и этот шаблон удален. \n ** Если это неправильная цель для этого перенаправления, обновите или удалите этот шаблон и/или саму переадресацию и/или другую страницу в зависимости от ситуации." )конецесли  этоDoubleTarget  тоесли  otherDoubleTarget ,  тоесли  мв . название . равно ( thisDoubleTarget ,  otherDoubleTarget ) ,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >Эта страница и "  ..  noredir ( otherPage )  ..  " являются двойными перенаправлениями.</span> Измените цель перенаправления обоих на "..  ( thisDoubleTarget . isRedirect  и  "правильная статья."  или  "[[:"  ..  thisDoubleTarget . fullText  ..  "]] (или какая-то другая правильная статья)." ))конецreturn  formatOutput ( true ,  "<span class= \" error \" >И эта страница, и "  ..  noredir ( otherPage )  ..  " являются двойными перенаправлениями.</span> Пожалуйста, исправьте их." )конецreturn  formatOutput ( true ,  "<span class= \" error \" >Это двойное перенаправление.</span> Пожалуйста, исправьте это, возможно, изменив его на [[:"  ..  otherTarget .fullText .. "]] . " )  конецесли  не  мв . название . равно ( thisTarget ,  otherTarget ) ,  тоreturn  formatOutput ( true ,  "<span class= \" error \" >Эта страница и "  ..  noredir ( otherPage )  ..  " перенаправляют на разные статьи.</span> Скорее всего, вам следует изменить цель перенаправления на [[: "  ..  otherTarget . fullText  ..  "]] для соответствия. \n ** Если это неправильная цель для этого перенаправления, обновите или удалите этот шаблон и/или само перенаправление и/или другую страницу, если это необходимо." )конецесли  это цель . фрагмент  ~=  другая цель . фрагмент  тогда-- Следует ли сообщать об этом случае для обновления?return  formatOutput ( false ,  "Поскольку [[Википедия:Двойные перенаправления|двойные перенаправления]] запрещены,"..  " обе страницы в настоящее время указывают на [[:"  ..  otherTarget . prefixedText  ..  "]] (но с разными якорями). \n "..  "**Если "  ..  noredir ( otherPage )  ..  " раскрывается в отдельную статью или перенаправляется, "..  " это перенаправление будет переклассифицировано для обновления.")конецконецreturn  formatOutput ( false ,  "Поскольку [[Википедия:Двойные перенаправления|двойные перенаправления]] запрещены,"..  " обе страницы в настоящее время указывают на [[:"  ..  otherTarget . полный текст  ..  "]]. \n "..  "**Если "  ..  noredir ( otherPage )  ..  " раскрывается в отдельную статью или перенаправляется, "..  " это перенаправление будет переклассифицировано для обновления.")конецвернуть  р
Получено с https://en.wikipedia.org/w/index.php?title=Module:R_avoided_double_redirect&oldid=1032665196 "