base_url の設定プラグイン(まじめに)
2007-07-27
お昼の日記の続き。 よく考えたら index.rb も update.rb も base_url は同じだった。 だったら、小細工せずにストレートに設定できる。
チェックボックスにチェックを付けてOKを押すと、現在のbase_urlをtdiary.confに保存するようにしている。 こうやって別プラグインにせずに、defaultの「サイトの情報」に入れちゃったほうがいいかもしれない。
add_conf_proc('base_conf', '日記のURLの設定', 'basic') do
if @mode == 'saveconf'
if @cgi.params['base_url_update'][0] == 'true'
@conf['base_url'] = @conf.base_url_org
else
@conf['base_url'] = @cgi.params['base_url'][0]
end
end
<<-HTML
<h3 class="subtitle">日記のURLの設定</h3>
<p>
あなたの日記のURL (base_url) を設定します。
下のチェックボックスにチェックを入れてOKボタンを押すと、
現在アクセスしているURLを設定します。
</p>
<p><input name="base_url" value="#{CGI::escapeHTML(@conf['base_url'] || '')}" size="70"></p>
<p>
<input name="base_url_update" type="checkbox" checked="checked" value="true">
現在のURL ( #{@conf.base_url_org} ) を設定する
</p>
HTML
end
@conf.instance_eval { alias :base_url_org :base_url }
def @conf.base_url
self['base_url'] || base_url_org
end
ところで、 @conf.base_url の特異メソッドとして定義して良かったんだろうか? 教えて、偉い人!