利用者: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が既にありますので、こちらを元にすれば良いと思います。