コンテンツにスキップ

利用者:Mage Whopper/存命人物編集警告

enでは、存命人物にはen:Category:Living Peopleがついています。jaではCategory:存命人物がそれに当たるでしょう。

このカテゴリがついたページを編集すると、編集時にページ上部に存命人物のページ編集はきをつけなさい、的なテンプレートが表示されます。仕掛けは後述。例 en:Päivi_Aaltonen editをクリックしてみてください。

表示されているのはen:Template:BLP_editintro

動作原理[編集]

URL引数[編集]

MediaWikiのURL引数に追加が行われています。 action=editのときには引数にeditintroが追加されており、URLにeditintro=ページ名を追加すると、編集ボックスの上部に指定したページを表示することができます。存命人物関係以外にも使うことは可能です。これはjaでも機能します(例[1])。この機能では、テンプレートのリダイレクトは働きません(例[2])。機能自体はTemplate:Cite webなどにも使われているので、一部使用されています。[3]

Common.js[編集]

この機能を用いて、Common.jsでページ内にCategory:Living Peopleがあるページを編集しようとすると、編集のURLにeditintro=Template:BLP_editintro を追加するようにen:MediaWiki:Common.jsに関数を仕込んでいます。それが以下の部分。

ページ内のHTMLからカテゴリのリンクを抜き出して、その中にCategory:Living peopleがあるかどうかを見て、編集リンクを追加しているだけです。

function addEditIntro(name)
{
  var el = document.getElementById('ca-edit');
  if (!el)
    return;
  el = el.getElementsByTagName('a')[0];
  if (el)
    el.href += '&editintro=' + name;
}
 
 
if (wgNamespaceNumber == 0) {
  addOnloadHook(function(){
    if (document.getElementById('disambigbox'))
      addEditIntro('Template:Disambig_editintro');
  });
 
  addOnloadHook(function(){
    var cats = document.getElementById('mw-normal-catlinks');
    if (!cats)
      return;
    cats = cats.getElementsByTagName('a');
    for (var i = 0; i < cats.length; i++) {
      if (cats[i].title == 'Category:Living people' || cats[i].title == 'Category:Possibly living people') {
        addEditIntro('Template:BLP_editintro');
        break;
      }
    }
  });
}

テンプレート[編集]

Templateはen:Template:Editnoticeを使ってつくられていています。今のところ他の用途には使っていないようです。[4] jaの場合は人物だけではなく企業や組織もWikipedia:名誉毀損の対象になるのでこれも作るといいかと思います。

日本語版には、Template:BLP_editintroが既にありますので、こちらを元にすれば良いと思います。