Обсуждение участника:Alex Smotrov/qactions.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Документация

[править код]

При переходе на страницу, для которой другой скрипт определённым образом составил URL адрес, этот скрипт выполнит определённые действия.


Действия указываются прямо в URL, начинаются с ключевого слова do и разделяются двоеточием, например:
http://ru.wikipedia.org/ruwiki/w/index.php?title=Статья&action=edit&do:watch=0:summary=test:focusText

Список возможных действий:

  • wikify : обработать текст Викификатором
  • insert=текст : добавить текст в начало страницы
  • append=текст : добавить текст в конец страницы
  • summary=описание : добавить описание
  • focusText : перейти в окошко редактирования
  • focusSummary: перейти в «Описание изменений»
  • minor=1 : отметить как «Малое изменение»
  • watch=1 : отметить «Включить эту страницу в список наблюдения»
  • preview : нажать «Предварительный просмотр»
  • diff : нажать «Внесённые изменения»
  • save : нажать «Записать страницу» (если вы добавили себе var enableAutoSave=true)

Значения справа от знака '=' при необходимости должны быть закодированы encodeURIComponent()


Установка: добавить importScript('Участник:Alex Smotrov/qactions.js'); в свой monobook.js

Затем добавить один или несколько скриптов, которые будут создавать специальные ссылки, см. примеры ниже.


Примеры

[править код]

Вставка шаблона

[править код]
 var caedit = document.getElementById('ca-edit'); //ссылка «править» сверху
 addPortletLink('p-cactions', 
   caedit.firstChild.href + '&do:append={{stub}}:minor=0:summary=+{{stub}}:preview',
   '{stub}');
 })

примерно такой код добавит сверху ссылку {stub}, при нажатии на которую ваш браузер:

  • перейдёт на страницу редактирования статьи
  • добавит '{{stub}}' в конец текста и '+{{stub}}' в описание изменении
  • уберёт галочку «Малое изменение» и нажмёт кнопку «Предварительный просмотр»


Упрощение удаления изображений со страниц

[править код]
if (wgCanonicalNamespace == 'Image')
addOnloadHook(function(){
 var ul, found, i, e, url;
 if (! (ul = document.getElementById('filelinks'))) return;
 do { 
  ul = ul.nextSibling;
  found = (ul.tagName && (ul.tagName.toLowerCase() == 'ul'));
 } while (ul && !found);
 if (!found) return;
 var summary = 'Удаление изображения с неясным лицензионным статусом: "'+wgTitle + '"';
 var links = ul.getElementsByTagName('a');
 for (i=links.length-1; i>=0; i--){
  url = links[i].getAttribute('href', 2).replace('/wiki/','/ruwiki/w/index.php?action=edit&title=');
  url += '&do:minor=1:find='  + encodeURIComponent(':'+wgTitle)
      + ':find='  + encodeURIComponent(':'+wgTitle.replace(/ /g,'_'))
      + ':summary=' + encodeURIComponent(summary) + ':focusText';
  e = document.createElement('a');
  e.href = url;
  e.appendChild(document.createTextNode('→'));
  e.title = 'Редактировать: ' + links[i].title;
  e.style.marginLeft = '10px';
  links[i].parentNode.insertBefore(e, links[i].nextSibling); 
 }
})

Такой скрипт на страницах изображений добавит внизу к списку статей, использующих изображение, дополнительные ссылки

Каждая такая ссылка открывает страницу редактирования статьи, на которой уже указано нужное краткое описание, а в вики коде уже найдено и выделено название изображения:

  • если название не найдено, то скрипт пытается найти его с _ вместо пробелов
  • если выделенного названия не видно, нажмите стрелку вправо или влево, чтобы прокрутить окошко редактирования к нужному месту
Ссылки

Следующие страницы ссылаются на данный файл:

  • Участник: Чебурашка  →


Уточнения дизамбигов со страниц «Ссылки сюда»

[править код]
if (wgCanonicalSpecialPageName == 'Whatlinkshere')  addOnloadHook(function(){
 var links = document.getElementById('bodyContent').getElementsByTagName('A');
 var a, e, url;
 var article = document.getElementsByTagName('H1')[0].innerHTML;
 var summary = 'уточнение ссылок на [[Википедия:Разрешение неоднозначностей|дизамбиг]] [[' + article + ']]';
 for (var i=links.length-1; i>5; i--){
   a = links[i];
   if (a.parentNode.tagName.toLowerCase() != 'li') continue;
   e = document.createElement('A');
   url = a.getAttribute('href', 2).replace('/wiki/','/ruwiki/w/index.php?action=edit&title=');
   url += '&do:minor=1:find='  + encodeURIComponent(article)
       + ':summary=' + encodeURIComponent(summary) + ':focusText';
   //e.target = '_blank'; //для открытия в новых окнах
   e.href = url;
   e.appendChild(document.createTextNode('→'));
   e.title = 'Редактировать: ' + a.title;
   e.style.marginLeft = '10px';
   a.parentNode.insertBefore(e, a.nextSibling); 
 }
})

Такой скрипт на страницах «Ссылки сюда» добавит рядом с каждой ссылкой дополнительную ссылку

Каждая такая ссылка откроет страницу редактирования статьи, на которой уже указано нужное краткое описание, отмечено «Малое изменение», а в вики коде уже найдено и выделено слово-дизамбиг (для того, чтобы вы его заменили на более конкретную ссылку).

Замечание: это только один из возможных инструментов для уточнений дизамбигов, и скорее всего не самый удобный. Попробуйте AWB, в котором есть для этого специальный раздел (скриншот на английском). В enwiki этой теме посвящена отдельная страница: en:Wikipedia:Disambiguation pages with links/Guide.

Возможные ошибки в связи с отключением wikibits.js

[править код]

Alex Smotrov, обратите внимание, что код этого скрипта может содержать следующие ошибки, вызванные использованием устаревшего кода, удалённого из движка «Медиавики» (скрипта wikibits.js, см. технические новости):

  • Замените doneOnloadHook, onloadFuncts, addOnloadHook или runOnloadHook на следующий код:
    jQuery( function( $ ) {
      // ваш код
    } );
    
    $( название_функции );
    
Полный список возможных ошибок и их решений: Legacy Javascript § wikibits.js (на mediawiki.org, англ.).

Если это сообщение пришло по ошибке и в скрипте нет проблемного кода, проигнорируйте его.
Используйте {{ping|Saint Johann}}, чтобы получить дополнительные пояснения.

St. Johann от лица инженеров русской Википедии
Отправлено NapalmBot 22:19, 4 мая 2017 (UTC)[ответить]