2010年11月27日土曜日

Lokkaのselect_field

そこでいよいよpluginの管理画面を作る。といってもsyntaxhighlighterのテーマファイルを指定するだけの機能しかない。

pluginそのものの有効無効の切替えはそのうちLokka本体のほうで対応するんだと思います。

inputでテーマ名を直接入力して切り替えるのはすぐできた。1文字でも間違えるとテーマがなくなるおそろしい仕様だけど。(^^;)

できればselectフィールドで選択できるようにしたい。というわけでLokkaのhelperに定義されているselect_fieldを使うことにしたんだけど、素人には厳しかった。まだできてません。今日はも無理。

.field
    %label{:for=>'theme_title'} Select Theme
    %br
    = select_field(Option,'sh_theme',[["shThemeDefaul","Default"],["shThemeDjango","Django"],["shThemeEclipse","Eclipse"]])
こんなふうに書いてみたら、ま、selectフィールドそのものは表示される。でも選択肢をかえても「Option.sh_theme」に反映されていないようなんだあ。
pugin本体側のsyntaxhighlighter.rbでは
def self.registered(app)
      app.get '/admin/plugins/syntaxhighlighter' do
        haml :"plugin/lokka-syntaxhighlighter/views/index", :layout => :"admin/layout"
      end
      app.put '/admin/plugins/syntaxhighlighter' do
        Option.sh_theme = params[:sh_theme]
        flash[:notice] = 'Updated.'
        redirect '/admin/plugins/syntaxhighlighter'
      end
とやっている。「app.put」の最初の
Option.sh_theme = params[:sh_theme]
でparams[:sh_theme]を拾っているわけですが、ここでselect_fieldの選択した値を拾えるようにしたい。でもどうやるか、よくわかんなかったです。

ま、また明日がんばってみよう。作者さんに直接聞くのが早いか。

0 件のコメント:

コメントを投稿