トップ «前の日記(2007-10-01) 最新 次の日記(2007-10-04)» 編集

Route 477



2007-10-02

[hiki] 更新しようとしたらPermissionErrorで書きかけのデータが飛びかけたときの対処法

Hikiで記事を書いてる途中に管理メニューにログインすると、「編集」押したときと「送信」押したときでログインユーザが違うので(という理由かは知らないが) PermissionErrorになるじゃん。

んで慌てて戻るボタン押してもIEだと内容が戻ってくれないという。

しかし戻るじゃなくて進むとか再読み込みすると「内容をもう一度送信して良いですか? OK/キャンセル」になるので、OKを押す前に hiki/command.rbを以下のように書き換える。

    def generate_error_page( data )
      @plugin.hiki_menu(data, @cmd)
      @plugin.title = title( 'Error' )
      data[:cgi_name] = @conf.cgi_name
      data[:view_title] = 'Error'
      require 'kconv'; data[:view_title] = @cgi["contents"].tosjis #←ここね
      data[:header] = @plugin.header_proc
      data[:frontpage] = @plugin.page_name( 'FrontPage' )
      @page = Hiki::Page::new( @cgi, @conf )
      @page.template = @conf.read_template( 'error' )
      @page.contents = data
      @page.process( @plugin )
      @page.out( 'status' => 'NOT_FOUND' )
    end

と、h1タグの中に書きかけのテキストが突っ込まれるので(強引だなおい)htmlソースから適当にサルベージしましょう。

…本当はこんな対処療法じゃなくて、Hiki本体を修正してもらうのが正しいけど。公式ページが復活したらITSに投げてみるか。