MediaWiki をカスタマイズする

拡張機能を作成し、インストールする

MediaWiki はウィキペディアなどのサイトでよく使われているウィキ・エンジンです。MediaWiki は非常に強力で柔軟なため、コミュニティー主導のナレッジ・ベースの優れた選択肢にもなっています。MediaWiki の場合、さまざまな拡張機能を容易に作成することができ、それが MediaWiki の柔軟さを生み出す元になっています。この記事では、MediaWiki のさまざまなタイプの拡張機能の作成方法について、ウィキの変数、特別なページ、新しいタグなどの例を挙げながら説明します。また、MediaWiki 用のスキンを作成するために何が必要かについても簡単に概要を説明します。

Chris Herborth (chrish@pobox.com), Freelance Writer, Author

Photo of Chris HerborthChris Herborth は、受賞の栄誉に輝くシニア・テクニカル・ライターで、これまで 10 年以上、オペレーティング・システムおよびプログラミングについての著作活動を続けています。余暇は、息子の Alex や妻の Lynette と一緒でないときには、コンピューター・ゲームの設計、作成、調査 (つまりゲームで遊んでいるということです) で過ごしています。



2010年 7月 06日

はじめに

おそらく MediaWiki が最もよく知られているのは、そのアプリケーションがウィキペディアのエンジンとして使われていることでしょう。多くの人が、ワークグループの中や組織全体、さらにはまたオンライン・コミュニティーの中で、情報を共有するための使いやすい環境を MediaWiki が提供できることに気付いています。MediaWiki を利用することで、ユーザーはブログやウィキ、ファイルなどを介して情報を共有することができます。また、アップロードされたファイルをセキュアに維持したり、ファイルをタグ付けして見つけやすくしたり、タグ・クラウドを使ってエキスパートを見つけたりすることもできます。さらに詳しくは「参考文献」を参照してください。

カスタムの情報を導入したいものの、その情報を手動で更新してウィキ・ページに挿入するのは避けたいとしたら、どうすればよいのでしょう?あるいは、特定のタイプの情報に対して出力フォーマットをカスタマイズしたい場合にはどうすればよいのでしょう?そういった場合に MediaWiki が威力を発揮します。MediaWiki を使うことで、サイト特有のそうした機能を、拡張機能を使って容易に追加できるからです。

では、MediaWiki の拡張機能を作成する方法を調べてみましょう。これらの拡張機能はさまざまな情報ソースと協調動作しながら、ウィキ・ページのおなじみのユーザー・インターフェースを介してデータを提供します。


MediaWiki の拡張機能

拡張機能により、記事の作成に使われるウィキのマークアップに新しいタグを追加することや、特別なページを作成して新しいレポート機能や管理機能を追加すること、スキンのフォーマットを設定することでウィキのルック・アンド・フィールを変更すること、さらには外部の認証手段と統合することさえできます (ただしこの記事では認証については説明しません)。

PHP で作成される拡張機能は、MediaWiki 内部のさまざまなフックやクラス、メソッドなどを使用して必要な作業を効率的に行います。MediaWiki の開発とデプロイメントには MediaWiki でサポートされている任意の Web サーバーと、普段からお使いの PHP 開発環境を使用することができますが、この記事では以下を使用します。

  • Eclipse V3.5.2 — 多様なプログラミング言語と環境をサポートします。
  • PDT (PHP Development Tools) V2.2.0 — Ecipse 用の PHP プラグインです。
  • MAMP Pro V1.9 — Mac OS X 用の便利なパッケージであり、隔離された環境の中で Apache、MySQL、PHP を提供しており、使いやすい GUI フロントエンドを持っています。OS X は Apache と PHP がインストールされた状態で出荷されていますが、私は MAMP Pro V1.9 を使うことにしました。その理由は、OS X V10.6 Snow Leopard (V5.3.1) にインストールされている PHP のバージョンには明らかにバグがあり、そのため MediaWiki が適切に動作しないからです。
  • MediaWiki V1.15.3 — 最新の安定版の MediaWiki です。

これらの入手方法については「参考文献」セクションを参照してください。

さまざまな種類の拡張機能について説明する前に、拡張機能の大部分で使用されるフォルダーとファイルの配置を簡単に調べてみましょう。その後で、MediaWiki サイトのルック・アンド・フィールを変更するための拡張機能として、スキンの拡張機能についての概要を説明し、続いて特別なページに管理用の統計を生成する拡張機能を作成します。最後に、ウィキ・ページを作成する際に利用できる、カスタムの XML タグのマークアップをサポートできるようにする方法を説明します。


拡張機能を解剖する

MediaWiki の拡張機能は、メインの MediaWiki パスの extensions ディレクトリーにインストールされます。最近の拡張機能の大半は、それぞれの機能独自のディレクトリーにインストールされ、以下の 3 つのファイルで構成されています (extension は拡張機能の名前です)。

  • extension/extension.php
  • extension/extension.body.php
  • extension/extension.i18n.php

1 番目のファイルによって、初期化とすべての設定が行われます。2 番目のファイルは拡張機能の本体であり、このファイルが実際の拡張機能を実装するコードです。そして、3 番目のファイルには国際化のためのストリングが含まれています (i18n は internationalization (国際化) の一般的な短縮形です)。拡張機能のメッセージ・ストリングを i18n ファイルの中に抽象化することで、MediaWiki がサポートする任意のロケールに対し、(何らかの支援によってテキストを翻訳できるならば) ローカライズされたバージョンの拡張機能を提供することができます。

一例として、ここでは CHTimeStamp という Hello World のような拡張機能を作成しました (この例や、この記事の他の例のソース・コードについては、「ダウンロード」セクションを参照してください)。CHTimeStamp は、あるウィキ・ページに誰かが {{CHSTAMP}} を挿入すると、挿入時の日付と時刻のスタンプを挿入します。CHTimeStamp は以下のファイルで構成されています。

  • CHTimeStamp/CHTimeStamp.php
  • CHTimeStamp/CHTimeStamp.body.php
  • CHTimeStamp/CHTimeStamp.i18n.php
図 1. Eclipse での CHTimeStamp のファイル配置
Eclipse での CHTimeStamp のファイル構造のスクリーンショット

CHTimeStamp 拡張機能は、MediaWiki のマークアップに {{CHSTAMP}} 変数を追加します。{{CHSTAMP}} をページに挿入すると、{{CHSTAMP}} はタイムスタンプと置き換えられます。単純かつ容易だと思いませんか。興味がある方はコードを調べてみてください (「ダウンロード」を参照)。記事では MediaWiki の拡張機能の一般的なファイル配置と命名規則を紹介するために、かなり大まかに説明しています。

この CHTimeStamp.php は、国際化用のメッセージ・ファイルを登録し、CHTimeStamp.body.php の CHTimeStamp クラスを見つけられることをウィキ・エンジンに伝え、拡張機能の関数の配列に CHTimeStamp::registerHooks メソッドを追加します。

CHTimeStamp.body.php の中で CHTimeStamp クラスを定義します。コードを見ると、このクラスは静的なメソッドのみで構成されています。つまり CHTimeStamp クラスを一連の関数として作成することもでき、その場合も拡張機能の動作は変わりません。CHTimeStamp の registerHooks メソッドは、{{CHSTAMP}} 変数を作成する静的なメソッドと、{{CHSTAMP}} 変数を使用するページを処理する静的なメソッドを登録します。

最後に、CHTimeStamp.i18n.php では、この拡張機能の中で唯一静的なストリングである、この拡張機能の説明の翻訳を作成しています。CHTimeStamp は Google Translate を使用することで、フランス、ドイツ、スペインのロケールをサポートしています。ただし自動翻訳によって私の英語がおかしな (または不適切な) 宣伝文句にならないことを祈ります。

拡張機能を作成、またはダウンロードした後、その拡張機能を MediaWiki にインストールして有効にする必要があります。


拡張機能をインストールする

MediaWiki サイトのための、興味深い、拡張機能や便利な拡張機能を用意できたら、その拡張機能を以下の手順でインストールして有効にする必要があります。

  1. その拡張機能を MediaWiki の extensions ディレクトリーにコピーまたは解凍します。
  2. MediaWiki のルート・ディレクトリーにある LocalSettings.php を編集します。適当なテキスト・エディターを使用して、新しい拡張機能を構成するための行を追加し、続いて PHP の require_once() 文を使ってその拡張機能を有効にします。

例えば、CHTimeStamp をインストールするために、私は CHTimeStamp ディレクトリーを extensions ディレクトリーにコピーし、LocalSettings.php に require_once( "$IP/extensions/CHTimeStamp/CHTimeStamp.php" ); を追加しました。

拡張機能がロードされたことを確認するために、ウィキの Special:Version ページにアクセスしてみます。Special:Version ページには、実行中の MediaWiki のバージョンに関する情報の他に、適切にロードされた拡張機能の一覧が表示されています。

図 2. CHTimeStamp が表示されている Special:Version ページ
CHTimeStamp 拡張機能がインストールされたことを示す MediaWiki の Version ページのスクリーンショット

ルック・アンド・フィールをカスタマイズする

MediaWiki は PHP の機能を利用してコードと HTML マークアップを混在させることができます。そのためユーザーは、スキンを使用してウィキのルック・アンド・フィールを制御することができます。スキンにはメインの PHP コード以外にさまざまな CSS ファイルや、そのスキンをサポートするための画像、JavaScript などを含めることができます。

スキンは通常、2 つの PHP ファイルと、追加のサポート・ファイル群のための 1 つのディレクトリーで構成されています。例えば、有名なデフォルトのスキンである MonoBook は以下のファイルで構成されています。

  • MonoBook.php — メインの MonoBook スキンのコード
  • MonoBook.deps.php — PHP V5 の APC オペコード・キャッシュのバグに対する修正
  • monobook/ — MonoBook スキンをサポートする CSS とグラフィックス

スキンの命名規則は非常に厳密であり、スキンを構成するファイルには SkinName.php、および SkinName.deps.php という名前が付けられ、フォルダー名としては skinname (小文字) という名前が付けられます。

skinname フォルダーの中には、そのスキンのスタイル設定のための main.css があります。特定のブラウザーのための、スタイルシートに関する修正も、ここにあります。そのため、main.css の中に FF2Fixes.css、IE6Fixes.css、Opera6Fixes.css などがあることがよくあります。

SkinName.php の起動には、メタデータがいくつか必要です。

リスト 1. MediaWiki のスキンのメタデータ
/**
 * [SkinName] skin
 *
 * @file
 * @ingroup Skins
 * @version [#].[#].[#]
 * @author [name] ([URL] / [E-Mail])
 * @license [URL] [name]
 */

角括弧の中にあるものをすべて、対象のスキンに適したもので置き換えます。

次に、SkinTemplate のサブクラスを作成し、initPage メソッドをオーバーライドして新しいスキンの名前、スタイル、テンプレートを指定する必要があります。SkinNameskinname を対象のスキンの名前で置き換えることを忘れないでください。

リスト 2. SkinTemplate を拡張して新しいスキンを提供する
// inherit main code from SkinTemplate, set the CSS and template filter
class SkinSkinName extends SkinTemplate {
        function initPage( OutputPage $out ) {
                parent::initPage( $out );
                $this->skinname  = 'skinname';
                $this->stylename = 'skinname';
                $this->template  = 'SkinNameTemplate';
        }
}

スキンの実質的な部分は QuickTemplate サブクラスです。

リスト 3. 動作の大部分はテンプレートの中で行われる
class SkinNameTemplate extends QuickTemplate {
...
        /**
         * Template filter callback for this skin.
         * Takes an associative array of data set from a SkinTemplate-based
         * class, and a wrapper for MediaWiki's localization database, and
         * outputs a formatted page.
         */
        public function execute() {
                global $wgUser, $wgSitename;
                $skin = $wgUser->getSkin();
 
                // retrieve site name
                $this->set( 'sitename', $wgSitename );
 
                // suppress warnings to prevent notices about missing indexes 
                // in $this->data
                wfSuppressWarnings();
 
                /* compose XHTML output */
 
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...

QuickTemplate サブクラスの中でいくつかのメソッドをオーバーライドし、カテゴリー・リストや相互参照などに対し、必要に応じてフォーマットやスタイルを設定します。このクラスの execute メソッドはページ全体を XHTML 文書としてレイアウトします。そのため、ユーザーはページの構成とスタイル設定を完全に制御することができます。

ここでは XHTML や CSS によるページ・レイアウトやスタイル設定を掘り下げることはできませんので、MediaWiki の skins フォルダーを調べ、すぐに試すことができるサンプルがないかどうか探してみてください。


特別なページを追加する

MediaWiki の特別なページは、ウィキに対して (おそらく有用な) 特定のことを行うために、必要に応じて生成されます (例えば、システム全体に関係するメッセージ・テキストを編集したり、インストールされた拡張機能を一覧表示したり、外部リンクのリストを取得したりするなど)。

特に指定しない限り、作成された特別なページは誰もが利用することができます。またそのページは、特別なページのリストである Special:SpecialPages リストの中に含まれ、あるページの中に特別なページがインラインで含まれるように、{{Special:YourPageName}} 構文を使って設定することもできます。

他の拡張機能と同様、特別なページはディレクトリーとして extensions フォルダーにインストールされます。特別なページは通常、以下の 4 つのファイルで構成されています。

  • specialpage/specialpage.php — その拡張機能のセットアップ・ファイル
  • specialpage/specialpage.aliases.php — 特別なページの名前のエイリアス
  • specialpage/specialpage.body.php — 特別なページのメイン・コード
  • specialpage/specialpage.i18n.php — 特別なページの国際化ストリング

例えば CHStats という特別なページを作成する場合、そのファイル配置は図 3 のようになります。

図 3. Eclipse での CHStats のファイル配置
Eclipse での CHStats ファイルの階層構造のスクリーンショット

CHStats.php のコードは、この拡張機能に対するクレジットの追加や、エイリアス・ファイル、本体ファイル、および国際化ファイルの登録、そしてウィキ・エンジンに対する CHStats クラスを必要に応じて自動的にロードするための指示、などを行います。

リスト 4. 特別なページ、CHStats を設定する
<?php
# This is not a valid entry point to MediaWiki.
if( !defined( 'MEDIAWIKI' ) ) {
    echo <<<EOT
To install CHStats, put the following line in LocalSettings.php:
require_once( "\$IP/extensions/CHStats/CHStats.php" );
EOT;
    exit( 1 );
}

# Take credit for this extension.
$wgExtensionCredits['specialpage'][] = array(
    'name' => 'CHStats',
    'author' => 'Chris Herborth (chrish@pobox.com)',
    'url' => 'http://www.pobox.com/~chrish/CHStats/',
    'description' => 'A simple special page demonstration, showing some DB stats.',
    'descriptionmsg' => 'chstats-desc',
    'version' => '1.0.0',
);
 
$dir = dirname( __FILE__ ) . '/';

# Register the extension's main code/class.
$wgAutoloadClasses['CHStats'] = $dir . 'CHStats.body.php';

# Register our internationalization files.
$wgExtensionMessagesFiles['CHStats'] = $dir . 'CHStats.i18n.php';
$wgExtensionAliasesFiles['CHStats'] = $dir . 'CHStats.aliases.php';

# Let MediaWiki know about the new special page.
$wgSpecialPages['CHStats'] = 'CHStats';

?>

CHStats.body.php の中で、SpecialPage クラスを継承する CHStats という新しいクラスを作成します。コンストラクターの中で親クラスを初期化し、次に wfLoadExtensionMessages を呼び出すことで国際化メッセージをロードします。アクセスを制限したり、ページを非表示にしたり等々ができる SpecialPage クラスのコンストラクターの詳細については、特別なページの開発者のためのガイドを調べてください (「参考文献」を参照)。

execute メソッドをオーバーライドすると、ページの生成が行われます。

リスト 5. 特別なページ、CHStats を生成する
# This is where the special page's output is created.
function execute( $par ) {
    global $wgOut;

    # Initialize the output page.
    $this->setHeaders();

    # Do stuff.
    $wgOut->addWikiText( "Some stats about this '''Wiki''':" );

    $db = wfGetDB( DB_SLAVE );
    // SELECT ... FROM site_stats
    $result = $db->select( 'site_stats', 
                           array( 'ss_total_views', 'ss_total_edits', 
'ss_total_pages', 'ss_users' ) );
    $statList = array();
    foreach( $result as $row ) {
        $statList[] = '* Total page views: ' . $row->ss_total_views;
        $statList[] = '* Total page edits: ' . $row->ss_total_edits;
        $statList[] = '* Total # of users: ' . $row->ss_users;
    }

    $wgOut->addWikiText( implode( "\n", $statList ) );

    $wgOut->addWikiText( "That's it." );
}

execute メソッドの中で、$par 引数はサブページです。例えば Special:CHStats/foo をロードしたとすると、$parfoo に設定されます ($par という名前は明らかに歴史的経緯の妙です)。

まず setHeaders メソッドを使ってページ・ヘッダーを設定し、次に $wgOut->addWikiText を呼び出して出力ストリームにマークアップをいくつか書き込みます。$wgOut->addHTML を使うことで、フォーマット設定された HTML を直接書き込むこともできますが、ここでは出力の中でウィキのマークアップを使っています。これらの詳細について、また他のページにインラインで含められる特別なページにウィキのマークアップや HTML を適切に追加する方法については、特別なページのための開発者ガイドを調べてください (「参考文献」を参照)。

CHStats ページは wfGetDB 関数を使ってデータベースへの参照を取得しています (読み取り専用操作には DB_SLAVE を使用し、書き込み操作には DB_MASTER を使用します)。次に、site_stats データベースからいくつかのフィールドを選択し、その結果をウィキのマークアップを使って箇条書きリストとしてフォーマット設定します。

この特別なページの出力がどのように表示されるかを示したものが図 4 です。

図 4. CHStats が表示されている様子
このスクリーンショットには、CHStats のリストにページ・ビュー、ページ編集、ユーザー数の合計が統計として表示されています。

CHStats.i18n.php の中にある国際化ストリングは配列で構成されており、この配列にはサポートされる言語 (この場合は英語、フランス語、ドイツ語、スペイン語) ごとに 1 つのエントリーがあります。各エントリーの中には配列があり、ストリングの ID からローカライズしたテキストへのマッピングを行っています。フランス語、ドイツ語、スペイン語への翻訳のために Google Translate が使われています。

CHStats.aliases.php にも同じような配列があり、この配列の中には CHStats ページの名前自体をローカライズしたものが含まれています。そのため、(例えば) フランス人のユーザーがこのページにアクセスする場合、Spécial:StatsCH というタイトルのページになります。


タグを追加する

MediaWiki を拡張する方法として、もう 1 つよく使われる方法は、新しい XML タグのサポートをマークアップに追加する方法です。これらのタグにより、タグの属性、または内容に応じて、さまざまな出力を生成することができます。またこれらのタグは、インラインの HTML を挿入する場合や、さらにはフォーマット設定された大規模な出力ブロックを挿入する場合にも便利です。

タグによる拡張機能は extensions フォルダーの配下にある専用のフォルダーにインストールされ、この記事の最初のところで説明した 3 つのファイルによる構成が使われます。では、CHUser という名前で私が作成した簡単な例を見てみましょう。

  • CHUser/CHUser.php — 拡張機能の設定です
  • CHUser/CHUser.body.php — 拡張機能のメインのコードです
  • CHUser/CHUser.i18n.php — 国際化データです

CHUser.php の中で行われる拡張機能の設定は、これまでに説明した拡張機能の設定と似ていますが、この例では $wgHooks 配列を使って拡張機能の init メソッドを ParserFirstCallInit リストに追加します。CHUser::init は CHUser を初めて使う場合に呼び出されます。

リスト 6. タグによる拡張機能を設定する
# Let MediaWiki know about the new tag.
$wgHooks['ParserFirstCallInit'][] = 'CHUser::init';

CHUser.body.php の中で、init メソッドは <chuser><bz> という 2 つのタグを登録します (リスト 7)。この拡張機能は 2 つの異なるタグを 1 つの拡張機能のみで提供しています。その気になれば、この記事で説明したすべての拡張機能を組み合わせるのも簡単であり、また (よほどのことがない限り) それらの機能をバラバラにしておく必要性もありません。

リスト 7. <chuser> タグと <bz> タグを登録する
public static function init( &$parser ) {
    # Add our <chuser> tag handler, the continue.
    $parser->setHook( 'chuser', 'CHUser::render' );
    $parser->setHook( 'bz', 'CHUser::renderBugzilla' );
    return true;
}

ウィキのマークアップ・エンジンは <chuser> タグを検出すると CHUser::render メソッドを呼び出し、また <bz> タグによって CHUser::renderBugzilla が呼び出されます。

<chuser> 描画メソッドは指定されたユーザーのフルネームと E メール・アドレスを選択し、そのアドレスを、ユーザーのフルネームの前後にラップされた mailto: リンクとしてフォーマット設定します (ただしユーザーのフルネームが指定されている場合に限ります)。リスト 8 を見ると、ロジックの大部分はデータベースの中にフルネームや E メール・アドレスがない場合 (私のウィキの Admin アカウントの場合など) の処理を行っているにすぎないことがわかります。

リスト 8. <chuser>UserName</chuser> を処理する
public static function render( $input, $args, $parser, $frame ) {
    $user = mysql_escape_string( $input );

    $db = wfGetDB( DB_SLAVE );
    // SELECT ... FROM user
    $result = $db->select( 'user', 
                           array( 'user_real_name', 'user_email' ),
                           'user_name = \'' . $user . '\'' );
    $mailtos = array();
    foreach( $result as $row ) {
        $thisUser = '<span class="user">';

        if( $row->user_email ) {
            $thisUser = $thisUser . '<a href="mailto:' 
. htmlspecialchars( $row->user_email ) . '">';
        }

        if( $row->user_real_name ) {
            $thisUser = $thisUser . htmlspecialchars( $row->user_real_name ); 
        } else {
            $thisUser = $thisUser . htmlspecialchars( $input );
        }

        if( $row->user_email ) {
            $thisUser = $thisUser . '</a>';
        }
        
        $thisUser = $thisUser . '</span>';

        $mailtos[] = $thisUser;
    }

    return implode( ", ", $mailtos );
}

リスト 9 は、<bz> タグが ID 属性を使用することで、MediaWiki の Bugzilla データベースの中にある指定のバグ・レポートにリンクしていることを示しています。これを見ると、外部データ・ソースとの連携がいかに容易であるかがわかります。もっと高度なことをしたい場合には、バグ・レポートにリンクする代わりに Ajax を使ってバグ・レポートをロードし、リンクを表示する代わりにバグ・レポートのデータの一部を表示することもできます。

リスト 9. <bz id="number" /> によって MediaWiki の Bugzilla にリンクする
public static function renderBugzilla( $input, $args, $parser, $frame ) {
    $retval = '';
    if( $args['id'] ) {
        $bzId = htmlspecialchars( $args['id'] );
        
        $retval = '<a href="https://bugzilla.wikimedia.org/show_bug.cgi?id=' 
. $bzId . '">MediaWiki Bug #' . $bzId . '</a>';
    } else {
        $retval = '<span class="error">No bug ID specified</span>';
    }
    
    return $retval;
}

この 2 つのタグによる表示を示したものが図 5 です。

図 5. 拡張機能が動作している様子
CHUser 拡張機能によってユーザーのスクリーン名と実際の名前が表示された画面のスクリーンショット

リスト 10 は、このページ部分のウィキのマークアップがどのようなものかを示しています。

リスト 10. 上記の拡張機能を示すウィキのマークアップ
== Extension testing ==

If this is working, we should see a timestamp: {{CHSTAMP}}

CHUser info:

* '''Admin''': <chuser>Admin</chuser>
* '''Chrish''': <chuser>Chrish</chuser>

<bz id="1024" />

CHUser 拡張機能を見るとわかるように、カスタムの XML タグに対するサポートの追加は容易であり、またそうしたサポートを追加することで、ほとんど何でもできるようになります。PHP の機能や MediaWiki のサービスはすべて利用できるため、外部システムからデータをプルすること (または外部システムにデータを送信すること) や、現在のユーザーのクレデンシャルやアクセス権に基づいて動作を変更すること、あるいは JavaScript を挿入し、ユーザーが閲覧中のブラウザーで直接タスクを実行することもできます。可能性は無限であり、制限要素は皆さんの特定のニーズや要件のみです。


まとめ

この記事では、Lotus® Connections などの商用ウィキ・ソフトウェアと似たオープンソースのウィキ・システム、MediaWiki でサポートされている、拡張機能に関する手法をいくつか紹介しました。

ここでは MediaWiki の拡張機能の命名規則について説明し、また MediaWiki の拡張機能を作成するための入門として、単純なウィキ変数による拡張機能を作成する方法を説明しました。MediaWiki のスキン機能の概要説明は、カスタマイズされた独自のサイトのレイアウトを作成するための手がかりとして役立つはずです。

特別なページは、データベースから取得した情報であれ、あるいは他のソースから取得した情報であれ、情報の生成用としてよく使われます。そこでこの記事では、システムの統計をいくつか表示する特別なページを作成しました。さらに、任意のページの wiki マークアップに含められるカスタムの XML タグをいくつか作成しました。


ダウンロード

内容ファイル名サイズ
Article source codeos-mediawiki-CH.Examples.zip7KB

参考文献

学ぶために

製品や技術を入手するために

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=503079
ArticleTitle=MediaWiki をカスタマイズする
publish-date=07062010