フキダシ枠 @ BalloonSpec

カラム

name和名typedefaultnulllimitnote
speech_balloon_idフキダシinteger FALSE フキダシid
system_picture_id画像integer FALSE フキダシ画像id テンプレートからのコピー
speech_balloon_template_classnameクラス名string FALSE50jsのクラス名(テンプレートからのコピー)
xXinteger FALSE 表示開始位置x
yYinteger FALSE 表示開始位置y
widthinteger FALSE 表示幅
height高さinteger FALSE 表示高さ
r角度integer FALSE
speech_balloon_template_settings拡張データstring json形式
created_at作成datetime
updated_at更新datetime

作成手順

  • フキダシSpeechBalloonModelの責任で作成する。フキダシはコマPanelModelの責任で作成するので、最終的にはコマ投稿機能の責任となる。

使い方

コマでフキダシ画像を表示する際に使う。

ベクターフキダシが使用可能な環境では、settingsから得たデータで描画する。settingsは、コマエディタがフキダシ枠に必要な情報を取得するためのもの(今のところ該当するプロパティは円形フキダシのrやサイズのバリエーションsize)で、json文字列としてパースして使う。これらのプロパティはjsのフキダシクラスとテンプレート間で合意があればどんな形式でもよい。フキダシ編集パネルでrが60に設定されているなら'{"r":60}'って文字列が入っているから、コマ表示では60度のフキダシを表示し、コマ編集なら60度のフキダシを編集モードにする。

ベクターフキダシが動かない環境では、サーバがsystem_picture_idのフキダシ画像をx・y・width・heightで表示する。このケースに備えて、クライアントのフキダシクラスは、コマ投稿時に表示中のベクターフキダシに最も近いフキダシ画像を選んでおかなければならないし、選べるようなパラメータを用意しておかなければならない。

自動補充

クライアントは作成・更新時にデータを渡すが、中には自動で値が補充されるカラムもある。

speech_balloon_id

検証

カラム別

speech_balloon_id

  • 数値であること

system_picture_id

  • nullでないこと。
  • 数値であること
  • 存在するシステム画像であること。

x

  • nullでないこと。
  • 数値であること

y

  • nullでないこと。
  • 数値であること

width

  • nullでないこと。
  • 数値であること
  • 正の整数であること。

height

  • nullでないこと。
  • 数値であること
  • 正の整数であること。

r

  • nullでないこと。
  • 数値であること

settings

全体

機能

一覧取得

list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • フキダシ枠を更新日時順に取得する。
  • 公開されたコマのフキダシ枠に限る
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

一覧取得オプション

下記の関連テーブルを含む

  • speech_balloon
    • speech_balloon_template
    • speeches
    • panel
      • author

json一覧出力オプション

下記の関連テーブルのカラムを含む

  • speech_balloon
    • speech_balloon_template
    • speeches
    • panel
      • author

単体取得

show(id, au)

パラメータ

  • id:フキダシ枠id
  • au:作家オブジェクト

解説

  • idのフキダシ枠を取得する。
  • 関連データとして単体取得オプションで定義されたモデルを含む。
  • フキダシ枠に閲覧許可を問い合わせ、不許可なら、例外403 ActiveRecord::Forbiddenを発生させる。
  • 存在しないフキダシ枠のidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

単体取得オプション

下記の関連テーブルを含む

  • speech_balloon
    • speech_balloon_template
    • speeches
    • panel
      • author

json単体出力オプション

下記の関連テーブルの(すべての)カラムを含む

  • speech_balloon
    • speech_balloon_template
    • speeches
    • panel
      • author

脚本の表示

scenario

パラメータ

戻り

脚本の文字列(HTML形式)

解説

脚本を返す。 captionをHTMLエスケープして返す。