# $Revision: $ # feedback.rb: フィードバックプラグイン # # Copyright (c) 2003 Junichiro KITA # Copyright (c) 2004 Kazuhiko # Distributed under the GPL # require 'pstore' @hexe_db = "#{@cache_path}/hexe" @hoxo_db = "#{@cache_path}/hoxo" @conf['report.str'] ||= '$2 人中、$1 人の方が、「この日記が参考になった」と投票しています。' @conf['enquete.str'] ||= 'この日記は参考になりましたか?' def hexe_add(date) PStore.new(@hexe_db).transaction do |db| db['hexe'] = Hash.new(0) unless db.root?('hexe') db['hexe'][date.strftime("%Y%m%d")] += 1 end end def hoxo_add(date) PStore.new(@hoxo_db).transaction do |db| db['hoxo'] = Hash.new(0) unless db.root?('hoxo') db['hoxo'][date.strftime("%Y%m%d")] += 1 end end def hexe_get(date) hexe = 0 PStore.new(@hexe_db).transaction do |db| hexe = db['hexe'][date.strftime('%Y%m%d')] if db.root?('hexe') db.abort end hexe end def hoxo_get(date) hoxo = 0 PStore.new(@hoxo_db).transaction do |db| hoxo = db['hoxo'][date.strftime('%Y%m%d')] if db.root?('hoxo') db.abort end hoxo end def report_str(hexe, hoxo) if /\$1/ =~ @conf['report.str'] && /\$2/ =~ @conf['report.str'] @conf['report.str'].sub(/\$1/, hexe.to_s).sub(/\$2/, (hexe+hoxo).to_s) else "#{@conf['report.str']}(#{hexe}/#{hexe+hoxo})" end end if (@mode == 'comment' and @cgi.valid?('hexe') and !bot? and @cgi.cookies['tdiary_hexe'][0]) hexe_add(@date) end if (@mode == 'comment' and @cgi.valid?('hoxo') and !bot? and @cgi.cookies['tdiary_hexe'][0]) hoxo_add(@date) end unless bot? add_body_enter_proc do |date| <#{report_str(hexe_get(date), hoxo_get(date))} HTML end end unless bot? add_body_leave_proc do |date| <
#{@conf['enquete.str']}
HTML end end unless bot? add_footer_proc do cookie_path = File::dirname(@cgi.script_name) cookie_path += '/' if cookie_path !~ /\/$/ cookie = CGI::Cookie::new( 'name' => 'tdiary_hexe', 'value' => '100hexe', 'path' => cookie_path, 'expires' => Time::now.gmtime + 90*24*60*60 ) add_cookie(cookie) '' end end def saveconf_hoxo if @mode == 'saveconf' @conf['enquete.str'] = @cgi.params['enquete.str'][0] unless @cgi.params['enquete.str'][0].empty? @conf['report.str'] = @cgi.params['report.str'][0] unless @cgi.params['report.str'][0].empty? end end add_conf_proc('hoxo', 'フィードバックプラグイン') do saveconf_hoxo <アンケート表記

「はい」「いいえ」を尋ねる文章を指定してください.

統計表記

指定した文字列中の $1 が「はい」数に、$2 が「はい」数と「いいえ」数の合計で置き換えられます.$1 と $2 の両方が含まれていない場合,指定した文字列の末尾に '($1/$2)' を追加します.

HTML end # vim: ts=3