Top > 開発ガイド > コンポーネント開発Tips集 > TinyMCEでの添付ファイルPluginの利用

TinyMCEでの添付ファイルPluginの利用

対象バージョン

当ドキュメントはRubricks-0.6.x向けです。

概要

Rubricksの添付ファイル機能を利用したTinyMCEの添付ファイルPluginを提供しています。
このPluginを利用することで簡単にTinyMCE上でファイルの添付、画像ファイルの表示が行えます。

実装の手順

Controller

  • use_tiny_mce_attachable
    • 引数1:options(Hash)
      :function_id    => Integer
      :function_name  => String
                         添付ファイルにアクセスするために必要な権限を指定します。
                         この機能は後述の添付ファイル保存先を:databaseとした場合にのみ有効となります。
                         RubricksFunctionのID(数値)もしくは該当コンポーネントのFunctionName('access'や'admin'等)で指定します。
                         省略した場合、該当コンポーネントの'access'権限となります。
      :name           => String
                         添付ファイルを保存する際のファイル名を指定します。
                         省略した場合、添付ファイルの元ファイル名が使用されます。
      :storage_type   => :filesystem or :database
                         添付ファイルの保存先を指定します。
                         :filesystemを指定すると該当コンポーネントの公開ファイルディレクトリに保存されます。
                         :databaseを指定するとデータベース上に保存されます。
                         省略した場合、一般設定の「アップロードファイルの格納先」で設定した値となります。
                         ファイルシステムを指定した場合には静的ファイルとして保存されるため、パフォーマンス的に優位となります。
                         データベースを指定した場合はパフォーマンスには劣りますが、アクセス制御が行えるメリットがあります。
      
    • サンプル
      class News::NewsController < ApplicationController
        use_tiny_mce_attachable({
              :function_name  => 'access',
              :storage_type   => RubricksConfig.get('site_attachment_type')
        })
      end
      
  • コールバックメソッド
    • file_accessable?
      添付ファイル、画像ファイルへのアクセスを許可するかの判定を行います。
      • 引数:ra(RubricksAttachmentオブジェクト)
      • 戻り値:true or false
        アクセスを許可するならtrue、許可しないならfalseを返して下さい。

Model

  • acts_as_tiny_mce_attachable
    • 引数1:attachable_columns(添付ファイルPluginを利用するテキストエリアのデータを格納するカラム名(リスト指定可能))
    • 引数2:options(Hash)
      :clean_up     => true or false (デフォルト:true)
                       trueの場合、該当モデルの更新時にクリーンアップ(参照されなくなったファイルを削除)を行います。
      :clean_up_timeout => Integer (デフォルト:0)
                       :clean_upがtrueの場合のクリーンアップの間隔(単位:日)を指定します。
                       0の場合は毎回クリーンアップを行います。
      
    • サンプル
      class News::NewsItem < ActiveRecord::Base
        acts_as_tiny_mce_attachable(:article, {
          :clean_up_timeout => 30
          }
        })
      end
      

View

  • init_tiny_mce
    • ケース1:modeオプションに'attachment'を指定
      • サンプル
        <%= init_tiny_mce({:mode => 'attachment'}) %>
        
    • ケース2:theme_advanced_buttons1~3オプションに'fileattachment'(ファイル添付),'imageattachment'(画像添付)を指定
      • サンプル
        <%= init_tiny_mce({:theme_advanced_buttons1  => 'fileattachment,imageattachment'}) %>