たむらけんいち
sgs02****@nifty*****
2003年 10月 24日 (金) 00:40:32 JST
たむらです。 attach.rb をいぢって、Flash(.swfなファイル)の対応などをしました。 * ファイルの mime-type に .ppt, .swfを追加 * 添付後の使い方を覚えられないので簡単な usageを表示するように * attach_view で Flashを表示可能に * その際、画像と違いサイズを適当に縮めるようなので、image_size.rb を 利用出来るときはサイズも埋め込むことに http://www.rubycgi.org/tools/index.htm で質問です。 1.今回みたくプラグインの usageの場合、多言語のことを考えると、どこに どう置くべきなのでしょうか ? 2.Image_sizeは pure rubyなスクリプトで簡単に画像のサイズ取得が可能なので 他の画像ファイルでも Flash同様あればサイズ取得する方が良いか ? 3.画像は無ければ実際のサイズになるのだから、Flashだけ特別だし、Image_sizeから コードを持って来るほうがシンプルだ。 どうでしょうかね ? --- ../misc/plugin/attach/attach.rb 2003-08-12 15:34:24.000000000 +0900 +++ attach.rb 2003-10-23 11:44:49.000000000 +0900 @@ -17,2 +17,10 @@ +def plugin_usage_label + '<div><ul> + <li>添付ファイルへのアンカは、{{attach_anchor(ファイル名 [, ページ名])}}</li> + <li>添付したファイルの表示は、{{attach_view(ファイル名 [, ページ名])}}</li> + <li>添付ページとファイルの一覧は、{{attach_map}}</li> + </ul></div>' +end + def attach_form(s = '') @@ -33,2 +41,3 @@ </div> + #{plugin_usage_label} </form> @@ -73,2 +82,17 @@ end +def attach_flash_anchor(file_name, page=@page) +begin + require 'image_size' + f = "#{@cache_path}/attach/#{@page.escape}/#{file_name}" + img_size = File.open(f,'rb'){|fh| + is = ImageSize.new(fh) + [is.get_width, is.get_height] + } +rescue +end + s = %Q!<embed type="application/x-shockwave-flash" src="! + s << %Q!#{$cgi_name}#{cmdstr('plugin', "plugin=attach_download;p=#{page.escape};file_name =#{file_name}")}" ! + s << %Q! width="#{img_size[0]}" height="#{img_size[1]}" ! unless img_size.nil? + s << %Q!>! +end @@ -97,3 +121,5 @@ "xls" => "application/vnd.ms-excel", + "ppt" => "application/vnd.ms-powerpoint", "pdf" => "application/pdf", + "swf" => "application/x-shockwave-flash", } @@ -130,2 +156,4 @@ attach_image_anchor(file_name, page) + elsif file_name =~ /\.swf\z/i + attach_flash_anchor(file_name, page) end ~ -- たむら (http://www.rubyist.net/~tamura/d/)