主にPukiWikiの改造に関するTips
編集ボックスのサイズを変える
編集画面に表示される編集ボックスは若干小さいように思える。 大きくするには、default.ini.phpの以下の場所を書き換える。
管理者のみが編集できるようにする
閲覧者にはコンテンツの編集を許可せず、管理者のみが編集できるようにする方法。 PukiWikiのRead-Onlyモードとして紹介されている。 要点は、
- PKWK_READONLYを1として閲覧者には閲覧のみを許可する
- index.phpをコピー・リネームし、PKWK_READONLYを0とすることで、編集用のindex.php仮にindex_edit.phpとする)を用意する
編集する場合は、index_edit.phpからWikiにアクセスすればOK。 もちろん、index.phpからアクセスした場合は編集できなくなっている。 さらにindex_edit.phpに対して認証による制限を加えれば、なおよし。
現在表示しているページの名前を取得する
関数内で使用する場合は、$varsをglobalにする。
「階層1/階層2/ページ名」の形式で得られるので、適宜切り分けて編集する。
添付ファイルとしてアップロードできる最大サイズを大きくする
まずは、/etc/php.iniのうち次の三つの値を変更して、postされるデータとして受け付ける最大サイズを設定する。
ここで、「memory_limit > post_max_size > upload_max_filesize」の関係になっていなければならないので注意。 変更したらApacheを再起動する。 つづいて、attatch.inc.phpを変更。 以下の二カ所を変更する。
これで、最大8MBytesまでのファイルを添付ファイルとしてアップロードできるようになる。
添付ファイル名からページ名と元のファイル名を取得する
添付ファイル名は「encode($page) . "_" . encode($file)」という基準で命名される。 文字列を変換する関数encodeとそれを逆変換する関数decodeは次のようになっている。
なので、アンダーバー(_)を区切りにしてページ名とファイル名に分割したあと、decodeしてやればそれぞれが取得できる。 ちなみに、encode、decode関数の処理をVB.NETで書くと以下の通り。
strに変換/逆変換したい文字列、encodingにはPukiWikiで使用している文字コードを設定する。 EUC-JPならEncoding.GetEncoding(51932)、UTF8ならEncoding.UTF8など。
Namazuで検索できるようにする(やりかけ)
index.phpと同じディレクトリにrobots.txtを置く
そのままrobots.txtを置くだけだと、デフォルトで用意されている.htaccessの内容が下記のようになっているため、403 Forbiddenになってしまう。
つまり、iniやらtxtやらといった拡張子をもつファイルへはアクセスできないようになっている。 このままの状態で検索エンジンなどがrobots.txtを参照しようとすると、大量のエラーログが残ってしまうため気分が悪い。 なので、FilesMatchディレクティブの下辺りに、下記のような記述を追加してrobots.txtへのアクセスを許可し、robots.txtを置く。
あとは、robots.txtの内容を適当に書く。 ちなみに、icoは拡張子のリストに含まれていないので、favicon.icoは特に気にせずそのままおいておくだけでOK。
チルダを使わないでも改行させる
pukiwiki.ini.phpの$line_breakを1に設定する。
この値を1にすることで、チルダを使用しないでも改行が自動的に<br />へと変換されるようになる。