Hiki FarmのWikiでattachを使う
Hiki0.7-devel-20040909.では、attach.cgiが今までのHikiFarmディレクトリにattach.cgiを置いておくという方法では使えなくなったので、代わりの方法が提示されていた。Hikiをバージョンアップしたので対応せざるを得なくなった。以下がその内容です。
HikiFarm用attach.cgiの作成
#!/usr/bin/env ruby hiki='' eval( open( '../hikifarm.conf' ){|f|f.read.untaint} ) $:.unshift "#{hiki}" load "#{hiki}/attach.cgi"
これをそれぞれのWikiにattach.cgiとしてコピーの上chmod0744に設定する。これでattach.cgiが使えるようになる.
HikiFarm内のindex.cgiを改造
HikiFarm内で新しく作られたWikiについてどうするか試してみた。要望が有ってからattach.cgiを個別にコピーした方が安全かもしれないが、一つの可能性と言うことで。
index.cgiの80行目から
def attach( wiki ) <<-ATTACH #!#{@ruby} hiki='' eval( open( '../hikifarm.conf' ){|f|f.read.untaint} ) $:.unshift "\#{hiki}" load "\#{hiki}/attach.cgi" ATTACH end
242行目から
File::open( "#{wiki}/attach.cgi", 'w' ) do |f| f.puts( attach( wiki ) ) f.chmod( 0744 ) end
この2つで、新しくWikiを作ったらそのディレクトリに、attach.cgiがchmod0744で作られる。もちろん標準で、hikiconf.rbとindex.cgiも出来ている。
これだけでは、オプションの記述が出来ないので、「tDiaryの一つのインストールで…」を参考に、共有のhikiconf.rbとそれを呼び出す改造を試みた。
共有のhikiconf.rbは/home/hoge/etc/hikiconf.rb等として作っておけばよいattach.cgiに必要な設定は、
@options['attach.form'] = 'edit'
である、これで編集画面にattach.cgiのFORMが表示される。
これを呼び出す仕組みをHikiFarmのindex.cgiに仕掛けてやれば出来上がり。
105行目 eval( File::open( "\#{hiki}/hiki.conf" ){|f| f.read.untaint} ) の後に
eval( File::readlines( "/home/hoge/etc/hikiconf.rb" ).join.untaint )
新しいWikiを作って試して見るべし。いたずらされると怖いなぁ(^
キーワード:
参照:[設定MEMO]