設定MEMO  ページ一覧  検索  更新履歴  編集履歴  PageRank  RSS  ソース  ログイン  HikiFarm

Hiki FarmのWikiでattachを使う

Hiki0.7-devel-20040909.では、attach.cgiが今までのHikiFarmディレクトリにattach.cgiを置いておくという方法では使えなくなったので、代わりの方法が提示されていた。Hikiをバージョンアップしたので対応せざるを得なくなった。以下がその内容です。

attachの位置

attach.rb
プラグインディレクトリにコピー
attach.cgi
Hikiインストールディレクトリのhiki.confやhiki.rbと同じ場所にコピー

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を作って試して見るべし。いたずらされると怖いなぁ(^

更新日時:2004/09/14 14:29:52
キーワード:
参照:[設定MEMO]