Powered by SmartDoc

コンポーネントの再利用

CKFrame

フレームを生成します。

必須属性: page属性、src属性、value属性のうち1つだけ設定してください。

CKFrameの属性
属性 データ型 説明
name String フレーム名。フレームを使う場合は、各エレメントで同じ名前をtarget属性に設定する。
page String フレームに使うコンポーネントを設定する。
src String フレームに使うファイルを直接指定する。page属性より優先される。
value CKComponent フレームの内容をコンポーネントで表示する。

フレームを扱うには、フレーム専用のコンポーネントを用意します。テンプレートにフレームセットを記述し、フレーム表示したいコンポーネントをCKFrameで定義します。

<frameset cols="200,*">
<cgikit name=Index></cgikit>
<cgikit name=Contents></cgikit>
</frameset>
Index : CKFrame {
  name = "Index";
  page = "IndexPage";
}

Contents : CKFrame {
  name = "Contents";
  page = "IntroductionPage";
}

CKComponent

コンポーネントは再利用が可能です。コンポーネント内に別のコンポーネントをネストすることができます。バインディングファイルにて、エレメントの代わりにコンポーネントを指定してください。

OtherComponent : MainPage {}

コンポーネントはエレメント属性を持ちません。その代わりに、インスタンス変数を属性として扱うことができます。

class MainPage < CKComponent
  attr_accessor :title
end
OtherComponent : MainPage {
  title = "Example for CKComponent";
}

上記の例では親コンポーネントがMainPageコンポーネントをネストし、その属性としてtitleを設定しています。

title属性はMainPageコンポーネントのインスタンス変数であるため、文字列"Example for CKComponent"が代入されることになります。

CKPartsMaker

コンポーネントは単独で使うこともネストすることもできますが、各コンポーネントを構成する「部品」としてネスティングのみに使うコンポーネントには単独表示させたくないことがあります。このような場合にはCKPartsMakerモジュールを使います。

CKPartsMakerはコンポーネント単体で表示を行わないためのモジュールです。このモジュールをインクルードしたコンポーネントは、単独表示のリクエストが来ると代わりのページを表示します。部品コンポーネントは、ほかのWebページコンポーネントと区別するため名前の最後に"Parts"や"Component"などとつけるといいでしょう。

CKPartsMakerモジュールのオブジェクト属性
オブジェクト属性 説明
substitute_page 代替ページ。指定しないときはメインページを表示する。

CKContent

親コンポーネントの位置を指定します。このエレメントは、コンポーネントをネストするときにのみ使います。CKContentは何も属性を持ちません。

<cgikit name=OtherComponent>Content of parent</cgikit>
OtherComponent : MainPage {}
<b><cgikit name=Content></cgikit></b>
Content : CKContent {}
<b>Content of parent</b>

CKGenericElement

CKGenericElementは一般的なHTMLタグを生成します。

必須属性: tag

CKGenericElementの属性
属性 データ型 説明
tag String HTMLタグ名。nilのときタグは生成されず、要素で囲んだ文字列か"string"属性が表示される。
enabled true/false タグを表示するか否か。falseのときタグは生成されず、要素で囲んだ文字列か"string"属性が表示される。
string String <cgikit>要素で囲んだ内容がないときに表示される文字列。
option String 開始タグに追加する文字列。"checked"や"selected"などを設定する。
form_value String フォームの場合、この変数にフォームデータの文字列を代入する。
form_values Array フォームの場合、この変数にフォームデータの配列を代入する。
invoke_action CKComponent エレメントが実行可能な場合(リンクやボタンなど)、クリック時にメソッドを実行する。

CKGenericElementには、以上のほかに任意の属性を定義することができます。定義した属性は「属性=値」の形式でタグに追加されます。