• このエントリーをはてなブックマークに追加

分岐の一つのアイデア

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>';
}
?>

記号をつけて一工夫

マークをつけて、特殊な処理を仕掛ける。マークでグループ化することによって、分類をあたかも増やしたかのように処理行うことで、様々な分岐が行える。

  • ジャンル
  • 住所
  • エリア
  • タグ
  • 価格帯

これらの情報は一つのカテゴリーという箱にそれぞれ保存されるが、機能的に記号を付けて分岐させることで、あたかも増やした分類のように処理可能。

他にも、カテゴリーを表示させる際に、カテゴリーに色を付けてカテゴリーの種類によってぱっと見たときに、わかりやすく表現すると言った工夫も効果的。