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

ログインしているかどうかという情報を取得できるので、ifを使って分岐することが可能。ログインしているかどうかというのは管理者や編集者などがアカウント情報で認証してログインしている状態にtrueという値を取得することが出来る。この値は裏を返せば、ログインしていない人またはログインしていないということはアカウントを持っていない人にもこれと同じ情報を表示させることが出来るということ。MediaWikiのアカウント作成は参加してもらってなんぼなので、if文を使って分岐させると良いかも。

こんにちは!の表示

例えば、サイドバーに表示されるリンクや文字があるが、そこに「こんにちは!」といったようなものを入れることができる。これは簡単な分岐の例。どういったものなのかを知るためには良いかも。

ファイルの場所:\skins\Vector\VectorTemplate.php

※「VectorTemplate extends BaseTemplate」クラス内に、
class VectorTemplate extends BaseTemplate { ~略~ }

<?php
 /* ログインしている人だけ「こんにちは!」を表示させる例 */
 if( $this->data['loggedin'] ) {
 ?>
こんにちは!
 <?php
 }
 ?>

アカウント作成を促す

アカウントを作成しませんか?という文字を入れる。リンクをつけるとなおのこと良い。

ファイルの場所:\skins\Vector\VectorTemplate.php

<?php
 /* ログインしている人だけサイドバーを表示させる例 */
 if( !$this->data['loggedin'] ) {
 ?>
<a href="アカウント作成のURL">アカウント作らない?</a>
 <?php
 }
 ?>

ログインしているという情報がtrueで返ってくるので、!でtrue以外 = falseとしてあげれば、ログインしていない閲覧者全てに表示させることが出来る。この分岐を使って、様々なアイデアでより良いシステムを構築してみてくださいな。

サイドバーの表示・非表示

ログインしていない閲覧者はナビゲーションを表示させるようにしたい。ログインしている編集者はサイドバーがいらないので、編集用のメニューを表示させる。手入力でいいと思う。

<?php
/* ログインしている人だけサイドバーを表示させる例 */
if( $this->data['loggedin'] ) {
// ログイン時
?>
<ul>
<li><a href="#">メニュー1</li>
<li><a href="#">メニュー1</li>
<li><a href="#">メニュー1</li>
<li><a href="#">メニュー1</li>
</ul>
<?php
} else {
// ログインしていない
$this->renderPortals( $this->data['sidebar'] );
?>
<?php } ?>

MediaWikiは、事典などのCMSとして利用するにはかなり使い勝手がよくほかの記事に向けてのリンク設定が容易で、手作りがかなり易いツールの一つであるといえる。反面、専用の管理画面が無いために一括で何かの処理を行いたい時や、特定の情報にリボ離婚で、管理・編集を一括で行いたい時には約不足なところがある。こっちの機能をとればこちらが伸びないと言った具合に。

どちらがいい、悪いとはいい難いところがあるが、WordPressは、一括処理がデフォルトで行える。カテゴリーごとに記事を並べて一括でこういった処理を行いたいと行った時には見やすいし編集しやすい。MediaWikiも無いことはないが、底にたどり着くアプローチや導線が悪い。

管理者・ログインしていない閲覧者の分岐のメリット・デメリット

管理者・ログインしている人に特別な情報を表示させることが出来き、編集や管理が捗るようになる。よく使うメニューを管理者や編集者に表示させておくことで、ページの作成効率が上がる。それとともにサイトのボリュームも増えて良くなる。

デメリットとしては、どのユーザーも同じ表示にならなくなるため、閲覧者の見えている画面とは違ったページを毎度見ることになるのでそれが当たり前となると、自分の画面で表示されていることを前提に説明などを行う時にはあれかな。ログインしていない情報を見る時は、ログアウトするか別のブラウザやモードでアクセスするとログインしていない人と同じ表示状態を見ることが可能。

テンプレートやエクステンションズを工夫して管理編集しやすくする

MediaWikiは基本機能として、管理しづらいということがあるが、それでも編集しやすいので、コレを使うほかない時には、テンプレートやエクステンションズをうまく利用して、編集しやすく改造する。

そのために、上記で説明した通り、ログインしているかどうかという分岐を使って編集者と普通の閲覧者との画面の表示の切り替えを行う。