Create  Edit  Diff  FrontPage  Index  Search  Changes  RSS  Login

edit_today.rb

概要

日ごとの日記に編集へのショートカットがほしい。

2.2からはプラグイン集に標準添付となります。

#edit_today.rb Rev.1.0$

unless @mode == 'day'
 add_body_enter_proc do |date|
        ymd = Time::at(date).strftime('%Y%m%d')
        y, m, d = ymd.scan(/^(\d{4})(\d\d)(\d\d)$/)[0]
        %Q|<div style="font-size: 80%; text-align: right;">
        [<a href="#{@update}?edit=true;year=#{y};month=#{m};day=#{d}">この日を編集</a>]
        </div>|
  end
end

yunozeeさんによるアイコンもあります http://frog.flop.jp/td/?date=20041104 (2005-Jan:URL変更になりました)

改造版

思いつきでWebから設定出来るようにしてみた。設定画面からリンクアンカーに表示するキャプションが変更出来る。また、タグを書くことでアイコンなども指定出来る。 作者が頼りないのでimgアンカー内のクォーテーションがシングルでないと表示が化けます。登録はちゃんとされてました。 セキュリティなど問題がないかまったく分かりませんので使う方は自己責任でどうぞ。識者の方の助言をいただければ幸いです。

#edit_today.rb Rev.1.1$
def edit_today_init
   @conf['edit_today.caption'] ||= 'この日を編集'
end

unless @mode == 'day'
   add_body_enter_proc do |date|
      edit_today_init
              ymd = Time::at(date).strftime('%Y%m%d')
              y, m, d = ymd.scan(/^(\d{4})(\d\d)(\d\d)$/)[0]
                      caption = @conf['edit_today.caption']
              %Q|<div class="edit-today"><span class="edit-today">
              <a href="#{@update}?edit=true;year=#{y};month=#{m};day=#{d}" title="#{y}-#{m}-#{d}を編集">#{caption}</a>
              </span></div>|
      end
end

def saveconf_edit_today
      if @mode == 'saveconf' then
              @conf['edit_today.caption'] = @cgi.params['edit_today_caption'][0]
      end
end

add_conf_proc('EditToday', '日付毎に編集画面へのアンカーを付ける') do
      saveconf_edit_today
      edit_today_init

      r = <<-HTML
      <h3 class="subtitle">表示関連</h3>
      #{"<p>リンクを示す文字列を指定します.アイコンなども指定出来ます。</p>" unless  @conf.mobile_agent?}
      <p><strong>記入例:</strong></p>
      <ol>
      <li>この日の日記を編集</li>
      <li>&lt;img src='icons/edit.png' alt='この日を編集' width='15' height='15'&gt;</li>
      </ol>
      <p>リンク:<input name="edit_today_caption" size="70" value="#{@conf['edit_today.caption']}"><br></p>
      <h3 class="subtitle">CSS関連</h3>
      <p>テーマを編集出来る場合はそちらで、出来ない場合はappend-css.rbを使って見た目を定義してください。</p>
      <p><strong>div.edit-today</strong>と<strong>span.edit-today</strong>の2つのクラスを用意しています。</p>
      HTML
end

title_proc版

最新version 2.1.2.20050828以降でないと使えないと思います。新しく使えるようになったtitle_procを使って日付の横にアンカーを持ってくることがプラグインベースでできるようになりましたので、作ってみました。無保証です。

#edit_today.rb Rev.1.2$

def edit_today_init
               @conf['edit_today.caption'] ||= 'この日を編集'
end

add_title_proc do |date,title|
       edit_today_link ( date , title )
end

def edit_today_link ( date , title )
       unless @mode == 'day'
               y = date.strftime( '%Y' )
               m = date.strftime( '%m' )
               d = date.strftime( '%d' )
               edit_today_init
               caption = @conf['edit_today.caption']
               unless @conf.mobile_agent?
               r = <<-HTML
                       #{title}\n<span class="edit-today">
                       <a href="#{@update}?edit=true;year=#{y};month=#{m};day=#{d}" title="#{y}-#{m}-#{d}を編集">#{caption}</a>
               </span>
       HTML
               else
                    title
               end
       else
           title
       end
end

def saveconf_edit_today
       if @mode == 'saveconf' then
               @conf['edit_today.caption'] = @cgi.params['edit_today_caption'][0]
       end
end

add_conf_proc('EditToday', 'edit_todayアンカー') do
       saveconf_edit_today
       edit_today_init

       r = <<-HTML
       <h3 class="subtitle">説明</h3>
       #{"<p>日付の横にその日の編集モードへ直接入るアンカーを表示します。</p>" unless @conf.mobile_agent?}
       <h3 class="subtitle">表示関連</h3>
       <p>リンクを示す文字列を指定します.アイコンなども指定出来ます。</p>
       <p><strong>記入例:</strong></p>
       <ol>
       <li>この日の日記を編集</li>
       <li>&lt;img src='icons/edit.png' alt='この日を編集' width='15' height='15'&gt;</li>
       </ol>
       <p>リンク:<input name="edit_today_caption" size="70" value="#{@conf['edit_today.caption']}"><br></p>
       <h3 class="subtitle">CSS関連</h3>
       <p>テーマを編集出来る場合はそちらで、出来ない場合はappend-css.rbを使って見た目を定義してください。</p>
       <p><strong>span.edit-today</strong>のクラスを用意しています。</p>
       HTML
end

要望

ログインしていないユーザの場合、このショートカットを表示しないようにしてほしい。 tDiaryの場合、ログインしていると言うことはすでに編集モードに入っていると言うことなのでこのアンカーは必要ないのでは? それとも日記自体をログインしないと見られないようにしているのでしょうか?? そうだとするとプラグインでは対応出来ないと思います。 済みません。誤解していました。上記要望は撤回します。 編集用のリンクは管理者だけが見えるようにしたいということであれば、http://ogawa.s18.xrea.com/greasemonkey/ にあるGreasemonkeyスクリプトが使えると思います。Firefoxを使用する必要がありますが。

Last modified:2011/07/25 23:25:25
Keyword(s):
References:[PluginList] [解決済みの要望]