# $Id$ ##require 'csv' def table_post_label 'ÄɲÃ' end add_body_enter_proc(Proc.new do @table_num = 0 "" end) def table_form( cols = 60, style = 0, *items ) cols = 60 unless cols.respond_to?(:integer?) style = 0 unless style.respond_to?(:integer?) style = 0 if style != 1 count = 0 @table_num += 1 result = <
EOS items.each do |i| result << < EOS count += 1 end result << < EOS result end def table_post params = @cgi.params table_no = (params['table_no'][0] || 0).to_i style = params['style'][0].to_i count = params['item_no'][0].to_i title = '' row = [] empty = true i = 0 while i < count title << "#{params["title#{i}"][0].to_s}," elem = params["col#{i}"][0].to_s row << elem empty = false unless "" === elem i += 1 end title << "\n" return '' if empty lines = @db.load( @page ) md5hex = @db.md5hex( @page ) flag = false count = 1 content = '' prev = '' lines.each do |l| if /^\{\{table_form.*\}\}/ =~ l && flag == false if count == table_no if style == 0 then content << "\s#RT\n\s" + title.gsub(/,$/,"") unless /^\s/ =~ prev content << "\s" + row.join(",") + "\n" content << l prev = l else content << l content << title prev = "\s" + row.join(",") + "\n" content << prev end flag = true else count += 1 content << l prev = l end elsif title === l and /^\s*#RT/ =~ prev nil else content << l prev = l end end save( @page, content, md5hex ) if flag end
#{i}