PHPベースのオープンソースのウィキソフトウェア DokuWikiのグローバル変数と定数について解説します。
DokuWiki内で定義されているグローバル変数と定数は、テンプレートカスタマイズやプラグイン開発を行う際によく使用します。
特に、動作モードやページ名・名前空間などのグローバル変数は条件分岐で多用しますので、覚えておきましょう。
なお、今回のバージョンは以下の通りです。
- DokuWiki 2018-04-22a “Greebo”
DokuWikiのグローバル変数
まずはグローバル変数からです。
$ACT(動作モード)
DokuWikiは、パラメータ「?do=」で与えられた動作モードによって異なる動作をします。
例えば、「?do=show」でページ(文書)を行います。
$ACTは、その動作モードを保持する変数です。
主な動作モードは以下です。
分類 | 動作モード | 概要 |
---|---|---|
ページ編集 | show | 文書の表示 |
ページ編集 | edit | 文書の編集/ソースの表示 |
ページ編集 | preview | プレビュー |
ページ編集 | save | 保存 |
ページ機能 | backlink | バックリンク |
ページ機能 | revisions | 以前のリビジョン |
ページ機能 | media | メディアマネージャー |
サイト機能 | index | サイトマップ |
サイト機能 | recent | 最近の変更 |
サイト機能 | search | 検索 |
例えば、テンプレート内でページ(文書)の表示時のみ出力したい箇所があれば、以下のように動作モード「show(文書の表示)」で条件分岐させればOKです。
<?php
if($ACT == 'show') {
//
}
?>
$conf(設定情報)
$confは、DokuWikiの設定情報を保持する配列変数です。
この中には、
- 管理者メニュー ⇒ サイト設定
で入力した値が含まれます。
テンプレート・プラグインなどの設定情報もこちらに含まれます。
$ID(ページ名)
$IDは、ページ名を保持する変数です。
以下のような名前空間とページの構造の場合、page1がページ名となります。
ルート └ ns1 └ page1 ns1:page1
$INFO(ページ情報など)
$INFOは、DokuWikiのページに関する情報などを保持する配列変数です。
主な要素は以下です。
配列要素 | 概要 |
---|---|
id | $IDと同様 |
namespace | 現在のページの名前空間 |
isadmin | ログインユーザーがスーパーユーザーかどうか |
ismobile | モバイル端末からの閲覧かどうか |
管理者であるスーパーユーザーのみ表示させたい場合は、isadminで判定すればOKです。
また、モバイル端末かどうかを判定したい場合は、ismobileを使用します。
$_SERVER[‘REMOTE_USER’](ユーザーログインの有無)
こちらは、ユーザーがログインした場合にユーザー名を保持します。
この変数に値がセットされている場合は、登録されているユーザーということで判定できます。
JavaScriptのグローバル変数については、こちらの記事を参考にしてください。
DokuWikiの定数
次は定数について。
DOKU_*(システム情報)
「DOKU_」で始まる定数は、DokuWikiの内部で使用するシステム情報を保持します。
主なものは以下です。
定数 | 概要 |
---|---|
DOKU_BASE | URLベース |
DOKU_REL | URLベースパス |
DOKU_URL | 絶対URL |
DOKU_INC | サーバー上のインクルードパス |
DOKU_CONF | confディレクトリのサーバー上のパス |
DOKU_TPL | 現在使用しているテンプレートのURLベースパス |
DOKU_TPLINC | 現在使用しているテンプレートのサーバー上のパス |
DOKU_PLUGIN | プラグインのサーバー上のパス |
最後に
今回は、DokuWikiのグローバル変数と定数について解説しました。
DokuWikiの定義済みグローバル変数と定数は、テンプレートカスタマイズやプラグイン開発を行う際に使用します。
特に、条件分岐でよく使用する動作モードやページ名・名前空間などのグローバル変数は覚えておきましょう。
DokuWikiの使い方については、こちらの記事にまとめています。
コメント