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

attach_on_hikifarm 差分 - IvyValley MEMO (Bibouroku)

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

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