PukiWikiのベースディレクトリを指す定数が欲しい†
- ページ: BugTrack2
- 投稿者: ELF
- 優先順位: 低
- 状態: 却下
- カテゴリー: 本体新機能
- 投稿日: 2005-02-28 (月) 01:31:17
- バージョン:
メッセージ†
PukiWikiのコアがインストールされたディレクトリ*1を指す定数が欲しいです.
例えば複数wikiを1つのPukiWikiでこなすときに,
define('PLUGIN_DIR', PKWK_DIR . 'plugin/');
といったようにしてプラグインを共用化したいのですが,毎回パッチ当てるのが面倒です(苦笑
- 1.4.4以降であれば pukiwiki.ini.php 内の定数で示されています。 --
- DATA_HOMEですね :) --
- DATA_HOMEはwikiディレクトリなどデータのディレクトリを指しますよね. -- ELF
index.phpの抜粋
define('DATA_HOME', dirname(__FILE__).'/data/');
とした場合,<index.phpがあるディレクトリ>/data/plugin」にプラグインを置かないといけないわけですね.
で,
pukiwiki.ini.phpのデフォルト
define('PLUGIN_DIR', HOME_DATA . 'plugin/' ); // Plugin directory
を
pukiwiki.ini.phpの希望のイメージ
define('PLUGIN_DIR', PKWK_DIR . 'plugin/' ); // Plugin directory
にして複数のPukiWikiプラグインを共用したいわけです.
シンボリックリンクでもコピーでもできなかないですが,スマートでないし,PKWK_DIRがPukiWikiのコアがあるディレクトリで定義されていればいいわけです*2.
- 「いいわけです」とか断言してえらそうな口調になっちゃってますね.すみません(苦笑 -- ELF
- 確かに lib と plugin, skin, image はそれぞれのwikiで共通化出来ますね。 --
- PLUGIN_DIRの定義を index.php に移すだけだったりして・・・ --
- PukiWiki/WikiFarm に関連するのかな? -- okkez
- ある意味WikiFarmてきなことです*3. -- ELF
- ちなみに自称Puki Wiki Farmとか呼んでるなんちゃってはこっちにあります.http://elf.no-ip.org/test/pukiwiki/index.php/elf/ 1.4.4ベースで結構いじっちゃってますが,最後の/elf/を好きに変えれば最大20個まで即座に作成されます.トータル制御のロジックは全然組んでませんが -- ELF
- 20個既に埋まってたので50個までいくようにしました -- ELF
- これって私が前に言った気がするんですが…思ってただけで言ってなかったようです(汗 私のWikiでは、pukiwiki.ini.phpに以下の設定をしてしのいでます。 -- Ratbeta
define('PLUGIN_DIR', DATA_HOME . '../plugin/'); // Plugin directory
- imageとlibはpukiwiki(index).phpを同じディレクトリに配置しておけば共用が可能です。言語ファイルの共通化はBugTrack/754に修正方法を載せてます。 -- Ratbeta
- すみませんが番号違いのような気がします -- ELF
- ありゃ…すみません。本当はBugTrack/579です。 -- Ratbeta
- このBugTrackについては既に対処がされているようですが,例えばlngファイル程度ならPKWK_DIRがあれば<?php require PKWK_DIR.basename( __FILE__);' ?>という内容のlngファイルをコピーしまわれば共通化が可能です(うちのPuki Wiki Farm*4はそうやってる)プラグインはなかなかそういうわけには行かないので. -- ELF
- 例えば
index.php
<?php
define('DATA_HOME', 'data/');
define('PKWK_DIR', '/usr/share/pukiwiki/');
define('LIB_DIR', PKWK_DIR.'lib/');
require(LIB_DIR . 'pukiwiki.php');
?>
pukiwiki.ini.php
<?php
(snip)
define('DATA_DIR', DATA_HOME . 'wiki/' ); // Latest wiki texts
define('DIFF_DIR', DATA_HOME . 'diff/' ); // Latest diffs
define('BACKUP_DIR', DATA_HOME . 'backup/' ); // Backups
define('CACHE_DIR', DATA_HOME . 'cache/' ); // Some sort of caches
define('UPLOAD_DIR', DATA_HOME . 'attach/' ); // Attached files and logs
define('COUNTER_DIR', DATA_HOME . 'counter/' ); // Counter plugin's counts
define('TRACKBACK_DIR', DATA_HOME . 'trackback/'); // TrackBack logs
define('PLUGIN_DIR', PKWK_DIR . 'plugin/' ); // Plugin directory
(snip)
これでindex.phpを好きな場所に置けます.また,PKWK_DIRはindex.php毎に異なる必要がない*5ので,pukiwiki.phpかコアのいずれかで定義されてたらいいと.
- こんにちは :) 話に乗り遅れました。DATA_HOMEは今のところ「一本分のPukiWikiの維持に必要で、他とは独立して持たせられるようにしたくなるもの全部」を抱えています。pluginも、現状はその一つです。どうして(1.4.4リリース時に)そうしたのかなど、いくつかの話題は official:WebTrack/28 をご覧下さい。短く言えば、PukiWiki一本ごとにpluginを安全に取捨選択できるような仕組みが実現していたなら、デフォルトをこうはしなかったでしょう。*6 -- henoheno
- 同じ事を言われている方がいらっしゃいますが、LIB_DIR と同じように、特定の PLUGIN_DIR を任意の(例えば5本立てるうちの3本の)PukiWikiで共有させたいというのであれば、LIB_DIR と同じように、共有を希望する任意の index.php の中で PLUGIN_DIR を定義してやるのが最も簡便で取り回しが効くと思います。(※元々defineしているところはコメントアウトするなりする) -- henoheno
- ちなみにPKWK_DIR(仮称)を定義することに対しての問題点はあるのでしょうか? 仮にPKWK_DIRが存在するならhenohenoさん仰るようなことが「index.phpでPLUGIN_DIRを定義する」「pukiwiki.ini.phpを編集する」の2アクションは後者の1アクションだけで行えるようになります. -- ELF
- またPukiWikiのコアを表す定数を2箇所指定しないといけないということは設置者のミスの誘発は2倍に(少なくとも等倍より大きく)なると思います*7. -- ELF