at posts/single.html

base_url の設定プラグイン(まじめに)

base_url of tDiary

お昼の日記の続き。 よく考えたら 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 の特異メソッドとして定義して良かったんだろうか? 教えて、偉い人!

関連する日記