# coding: utf-8 # # user_css2.rb # # テーマに対して、ちょっとしたスタイルシートを追加する。 # append-css.rbとの違いは、テーマごとに違う内容を書き出せること。 # もちろん、append-css.rb同様、全てのテーマに対しても書き出せる。 # # * 2006-01-13 # ** Hiki-0.8.6でエラーになるので設定画面の分類はなし。 # * 2005-10-07 # ** tDiary-2.1.3での設定画面の分類に対応。 # ** 日本語の修整 ^_^;。 add_header_proc do [[@conf["user_css2..css"], 'all themes'], [@conf["user_css2.#{@conf.theme}.css"], @conf.theme]].map{|css, css_for| css = css.to_s.strip; next if css.empty?; <<-"STYLE" STYLE }.join(''); end if(@mode.nil? or not @mode.index('conf')); unless @resource_loaded then def user_css2_label 'テーマの微調整' end def user_css2_desc <<-HTML

user_css2.rbの概要

テーマCSSへの参照の直後に<style>タグを埋め込むことで、テーマの一部を上書きします。

append-css.rbとの大きな違いはテーマ毎に違うCSSを埋め込めること。

手順

現在使用中のテーマを修整するだけなら、テキストエリアにCSSを書いて[OK]ボタンでOK。

それ以外の場合はリストボックスから修整対象のテーマを選んでから、(以前の修整を読み出すために) [このテーマを修整する]ボタンを押し、それからテキストエリアを編集します。そして[OK]ボタン。

必要なら [テーマファイルを開く]ボタンで修整対象となるテーマのCSSファイルを参照できます。(javascriptでwindow.open()を使ってるのでどちらかの理由で開けないこともある)

HTML end def user_css2_buttonlabel1 'このテーマを修整する' end def user_css2_buttonlabel2 'テーマファイルを開く' end end if(!@conf_theme_list && @mode =~ /^(conf|saveconf)$/ && @cgi.params['conf'][0] == 'user_css2') # plugin/00default.rb からのコピー @conf_theme_list = [] Dir::glob( "#{@conf.theme_path.untaint || ::TDiary::PATH+'/theme'}/*" ).sort.each do |dir| theme = dir.sub( %r[.*/theme/], '') next unless FileTest::file?( "#{dir}/#{theme}.css".untaint ) name = theme.split( /_/ ).collect{|s| s.capitalize}.join( ' ' ) @conf_theme_list << [theme,name] end end add_conf_proc( 'user_css2', user_css2_label, 'theme') do if @mode == 'saveconf' then if(@cgi.params['user_css2.css'].empty? || @cgi.params['user_css2.css'][0].empty?) @conf.delete("user_css2.#{@cgi.params['user_css2.theme'][0]}.css"); else @conf["user_css2.#{@cgi.params['user_css2.theme'][0]}.css"] = @cgi.params['user_css2.css'][0]; end end theme = (@cgi.params['user_css2.theme'][0] or @conf.theme); theme_hash = Hash[* @conf.options.map{|thm,css| (thm =~ /^user_css2\.(.+)\.css$/) ? [$1, $1.split(/_/).collect{|s| s.capitalize}.join(' ')+' (deleted)'] : nil}.compact.flatten ].update( Hash[* @conf_theme_list.flatten] ); theme_hash[''] = '* All Theme *'; theme_url = theme_url(); theme_url += '/' if(theme_url[-1] != ?/); <<-HTML #{user_css2_desc}

HTML end