MediaWikiでカテゴリ表示部分のHTMLを元に指定カテゴリで処理を分岐する
MediaWikiのテンプレート部分の分岐や改造は難解で、簡単にページや状態により分岐を行えないようになっている。ページごとの編集が簡潔な分非常に残念。
そんななかで、それなりに表示している変数や値を元に分岐しようと思う。
カテゴリごとに背景色を変更したり、注意分を表示したり、アイコンを表示したりとカスタマイズしたいケースがある。
ファイルの場所:\skins\Vector\VectorTemplate.php
VectorTemplate.phpを開いて、<body>内の表示部分の処理に変更を加えたい場所にいかのコードを入れる。
<?php // カテゴリ表示部分のHTMLを取得 $catlinks = $this->data['catlinks']; // aタグを分解する preg_match_all("|<a href=\"(.*?)\".*?>(.*?)</a>|mis",$catlinks,$catlinks_matches); // 指定したカテゴリが存在するか分岐する preg_match_all("|(.*?)|mis",$catlinks,$catlinks_matches); // 指定したカテゴリが存在するか分岐する $cat_found = false; // 指定カテゴリが存在するかどうか foreach ( $catlinks_matches[2] as $catname ) { if ( $catname == '閉鎖' ) { $cat_found = true; } } if ( $cat_found == true ) { // カテゴリが存在するならば、処理する echo '<div style="margin: 1em 0; padding: 1em; border: solid 10px #fc9; font-size: 2em; color: #f60; background: #fec;">閉鎖または停止</div>'; } ?>