MediaWikiで「最近更新したページ」を開くと左側のツールボックスにRSSとAtomへのリンクが表示される。
このRSSをRSSリーダーに登録していたところあることに気付いた。
配信されたRSSからページを開くと,最新版とその前の版との差分の情報が表示される。管理者にとっては,自分の更新履歴を確認するとともに,第三者によっておかしな変更がなされていないかをチェックすることもできて便利である。
しかし,一般の利用者はいきなり差分情報のページが表示されたらびっくりするだろう。画面左上の「本文」タブをクリックすれば本文のページに移動することができるが,そのことに気付くことができるとはかぎらない。
そこで,「本文」タブへ誘導するメッセージを表示させることにした。

デフォルトでは差分情報のページではページタイトルの下に「版間での差分」と表示されている。これを「版間での差分(本文を読むには左上の「本文」タブをクリックしてください)」というメッセージに変更することにした。

変更方法は以下のとおり

特別ページ>表示メッセージの一覧>differenceとページをたどって,MediaWiki:Differenceページを編集する。

なお,表示メッセージの差分情報の場合には「本文」タブではなくて「メッセージ」タブが表示されるため,本来なら「メッセージ」タブにも言及すべきかもしれないが,表示メッセージの変更は頻繁に行われるものではないし,システムによる表示メッセージを目的としてサイトを閲覧することはあまり考えられないことから,「本文」タブだけの言及とした。

変更後は次のように表示されることになる。
(下記のリンク先は現在構築中の「法令用語の定義等データベース」のMediaWikiインストール直後から編集テストを行った場合の差分)

http://www.midpurple.jp/wiki/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&diff=3&oldid=prev

MediaWikiのカスタマイズ(6) ShortURL

  • 投稿日:
  • by
  • カテゴリ:

MediaWikiで生成される各ページのURLは「ドメイン名/wiki/index.php?title=Page_title」の形式であり,日本語をページタイトルに使った場合はURLエンコードされることもあって非常に長くなってしまう。そこで,少しでもURLを短くするために「ドメイン名/wiki/ページタイトル」の形式に変更することにした。
mediawiki.orgのマニュアルに従って作業を進める。

Short URLについてのマニュアルはこちら
Manual:Short URL/ja

エックスサーバーの場合は上記ページからのリンクのうち以下のページを参考にする
Manual:Short URL/wiki/Page title -- PHP as a CGI module, no root access

 

1..htaccessの編集

ルートディレクトリ(/home/wikiにwikiをインストールしてある場合,/home/wikiの下ではなく,/home)の.htaccessファイルに以下の記述を追加

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^wiki/(.+)$ /wiki/index.php?title=$1 [L,QSA]

2.LocalSettings.phpに以下の記述を追加

$wgScript           = "$wgScriptPath/index.php";
$wgRedirectScript   = "$wgScriptPath/redirect.php";
$wgArticlePath      = "$wgScriptPath/$1";

なお,マニュアルに追加の指示のある$wgScriptPathはインストール時に自動で値が設定されていたのであらめて設定する必要はなかった(1.13.0の場合)。

MediaWikiは国際的に開発・利用されているため,デフォルトの時刻表示はUTCが用いられている。
日本時間で表示するにはlocalSettings.phpに以下の記述を追加する(分単位でUTCとの差を設定する)。

$wgLocalTZoffset = +540;

 

上記の設定だけで問題ないが,日本標準時で表示していることを示すためにフッターの最終更新日時に(UTC+9:00)という表記を追加することにした。変更方法は以下のとおり。

ログインした状態で,特別ページ>表示メッセージの一覧>lastmodifiedatとページをたどって,MediaWiki:Lastmodifiedatページを編集する。

MediaWikiのカスタマイズ(4) ロゴの変更

  • 投稿日:
  • by
  • カテゴリ:

ページの左上に表示されるロゴの変更は以下の手順で行う。

1.ロゴ用画像のアップロード

FTPなどを用いてロゴ用の画像をアップロードする。
標準の画像の大きさは135×135(ピクセル)
アップロード先はMediaWikiのインストールディレクトリを/wikiとすると

  /wiki/skins/common/images/の下

 

2.LocalSettings.phpに以下の記述を追加

新しいロゴ用画像のファイル名をnewlogo.pngとすると

$wgLogo             = "/wiki/skins/common/images/newlogo.png";

MediaWikiの標準の設定ではページタイトルの先頭が英小文字の場合,自動的に大文字に変換してタイトルが作成される。これは辞書的に使う場合にはあまり好ましくない(例えば,英和辞典の項目名の最初の文字がすべて大文字変換されていたらかなり違和感があるし,コンピュータ関連用語であれば大文字と小文字の区別がつかないことによるトラブルもありうる)。

MediaWikiで最初の文字が自動で大文字にならないようにするにはLocalSettings.phpに次の記述を追加する。

 

#最初の文字を大文字変換しない
$wgCapitalLinks = false;

1.LocalSettings.phpの以下の行を変更(falseからtrueに)

$wgEnableUploads       = true;

2.LocalSettings.phpに以下の行を追加

#ユーザー以外をアップロード不可に

$wgGroupPermissions['*']['upload'] = false;
$wgGroupPermissions['user']['upload'] = true;
$wgGroupPermissions['sysop']['upload'] = true;

#アップロードできるファイルの種類
$wgFileExtensions = array('png','jpg','gif','pdf');

 

アップロードできるファイルの種類は必要に応じて増減

エックスサーバーへのMediaWikiのインストール

  • 投稿日:
  • by
  • カテゴリ:

おおまかな手順としては,MySQLデータベースの作成,ファイルの転送,インストールスクリプトの実行となる。

1.MySQLデータベースの作成
エックスサーバーの管理画面にログインしてサーバーパネルでMySQLデータベースとデータベースに接続するユーザーを作成しておく。
また,MySQLサーバのサーバ名を確認しておく(phpMyAdminで確認できる)。


2.ファイルのアップロード
エックスサーバーはtelnetが使えないので,ローカルでファイルを解凍してからFTPでアップロード。

3.ファイルの属性変更
configディレクトリのパーミッションを755にする。
なお,エックスサーバーではCGI等のパーミッションを777と設定した場合は動作しないようにセキュリティ上設定されているようだ。

4.インストールスクリプトの実行
ファイルをアップロードしたディレクトリにアクセスするとインストールスクリプトが実行されるので必要項目を入力。
データベース関連の情報は1.で作成・確認したものを使う。
自分だけで使うため,メール関連機能はオフにした。


5.LocalSettings.phpの移動
自動で作成されたLocalSettings.phpをconfigディレクトリからMediaWikiのルートに移動。


なお,1.13.0ではデータベースにSQLiteがサポートされている模様。インストール時に迷ったが,まだSQLiteを使うインストールについてのドキュメント等も整理されていないようだったので,慣れているMySQLで運用することにした。

MTOS4.21へアップグレード

  • 投稿日:
  • by
  • カテゴリ:

4.20をインストールして1日もたたないうちに4.21がリリースされたのは予想外だった(笑)。まだデータも少ないし,カスタマイズのほとんどしていないのでバージョンアップに伴うリスクが小さいのがせめてもの救いか。

バージョンアップの手順は公式にもドキュメントがあるが,一応メモを残しておく。

1.既存の環境のフォルダ名を変更
MTがインストールしてあるフォルダ(アプリケーションディレクトリ)の名前を変更(例:「mt」から「mt420」)。
必須ではないが,バックアップデータの管理にはバージョンが明記されていたほうが後々わかりやすい。また,フォルダ名を変えて旧環境を残しておけば,新しいバージョンでトラブルが出たときに容易に元に戻すことができる。

2.既存の環境のバックアップ
MTをインストールしてあるフォルダをまるごとバックアップ。
SQLiteによる運用だと,ファイルベースのバックアップで済んでしまうのが便利。

3.新しいファイルのアップロード
新しいバージョンのファイルを解凍してアップロード。
アップロード先のフォルダ名を旧環境で使用していたフォルダ名(例:「mt」)に変更。

4.旧環境からの設定・データの引継
mt-config.cgi,自分でインストールしたプラグイン,SQliteのデータファイルを2.で作成したバックアップから新環境にアップロード。
プラグイン関係のファイルの置き場所は主に
 アプリケーションディレクトリ/plugins/
 アプリケーションディレクトリ/mt-static/plugins/

5.cgiファイルの属性変更
環境に応じてcgiを実行できる属性(「755」等)に変更。

6.mt.cgiにアクセス
mt.cgiにアクセスするとログインフォームの前に4.21にアップグレードした旨が表示される。


備考.旧環境の削除

アップグレード後,旧環境(1.でリネームしたフォルダ)は不要になる。新しいバージョンが安定して動作することを確認したら,後日削除する。削除するまでの期間,セキュリティからはcgiファイルの(又はフォルダごと)属性を変更して外部からアクセスできないようにしておいたほうがよいと思われる(私の場合はフォルダごと変更している)。

なお,環境によっては属性を「000」にしてしまうとその後の削除・変更ができなくなってしまう場合があるようだ。私の使っている環境では「000」から元に戻すこともできたが,わからない場合は「600」くらいにしておいたほうがよいかもしれない。

MTへのメールフォームの追加

  • 投稿日:
  • by
  • カテゴリ:

MTでメールフォームを使う方法としてはプラグインによる方法と,外部サービスでメールフォームを作成し,そのフォームへのリンクを貼る方法がある。 

メールフォーム作成用プラグインには藤本壱 氏の作成したMailFormプラグインがある。
 Six Apart Movable Type プラグインディレクトリ:MailForm (このページからリンクされているバージョンは古い)
 2008年8月22日現在の最新版(2.10b)

このプラグインは藤本氏による詳細な解説があり,またMTだけで完結できるところも優れている。MT本体のライセンスに応じてプラグインに適用されてるライセンスが明記されていることにも安心感がある。
 

メールフォームを追加するもう一つの方法は外部のメールフォーム作成サービスの利用である。デザインがMTと統一されなくなるという面はあるが,外部のサービスを使うことから,MTを運用しているサーバーへの負荷はかからない。MTは記事が増えると重くなるという性質があるため(4.2で改善されたともいわれているが),外に出せる機能は外に出してしまうというのは有効な方法だろう。


このサイトでは,MTOS以外でページを作成することも予定しているので,プラグインではなくメールフォームの作成サービスを利用することにした。使用したサービスはマイふぉーむまん,無料で3つまでメールフォームを作成することができる。さらに高機能な有料版もある。

MTのサイドバーにメールフォームへのリンクを表示させるにはウィジェットを使う。具体的な手順は以下のとおり。

 

1.新しいウィジェットの作成

MTの管理メニューからウィジェットの画面に移動し,「ウィジェットテンプレートを作成」をクリックすると新しいウィジェットを作成する画面が開く。「管理者へメール」等の適当な名前をつける。ウィジェットの中身は他のサイドバーに表示されるウィジェットを参考にする。このサイトでは「Powered By」をひな型にしてリンクをメールフォームへのリンクに置き換えた。本来であれば新たなクラスを定義すべきなのかもしれないが,そうするとCSSファイルにも修正を加えなくてはならなくなるので,同じ表示スタイルのクラスを流用することにした。後日「powered by」と「管理者へメール」の表示スタイルを別々にしたくなったときに修正が必要になるが,自分だけで管理しているぶんにはあまり問題にならないだろう(こうやって記録も残しているし)。担当者が変わったり,あるいは他者へテンプレートを納入するような業務用の場合にはこのような「手抜き」はもちろん好ましくない。

 

2.ウィジェットセットに作成したウィジェットを追加

サイドバーの表示項目を定義しているウィジェットセットに1.で作成したウィジェットを追加する。

 

3.サイトの再構築

サイト全体を再構築すれば,サイドバーにメールフォームへのリンクが表示される。