フレームを生成します。
必須属性: page
属性、src
属性、value
属性のうち1つだけ設定してください。
属性 | データ型 | 説明 |
---|---|---|
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"; }
コンポーネントは再利用が可能です。コンポーネント内に別のコンポーネントをネストすることができます。バインディングファイルにて、エレメントの代わりにコンポーネントを指定してください。
OtherComponent : MainPage {}
コンポーネントはエレメント属性を持ちません。その代わりに、インスタンス変数を属性として扱うことができます。
class MainPage < CKComponent attr_accessor :title end
OtherComponent : MainPage { title = "Example for CKComponent"; }
上記の例では親コンポーネントがMainPageコンポーネントをネストし、その属性としてtitleを設定しています。
title属性はMainPageコンポーネントのインスタンス変数であるため、文字列"Example for CKComponent"が代入されることになります。
コンポーネントは単独で使うこともネストすることもできますが、各コンポーネントを構成する「部品」としてネスティングのみに使うコンポーネントには単独表示させたくないことがあります。このような場合にはCKPartsMakerモジュールを使います。
CKPartsMakerはコンポーネント単体で表示を行わないためのモジュールです。このモジュールをインクルードしたコンポーネントは、単独表示のリクエストが来ると代わりのページを表示します。部品コンポーネントは、ほかのWebページコンポーネントと区別するため名前の最後に"Parts"や"Component"などとつけるといいでしょう。
オブジェクト属性 | 説明 |
---|---|
substitute_page |
代替ページ。指定しないときはメインページを表示する。 |
親コンポーネントの位置を指定します。このエレメントは、コンポーネントをネストするときにのみ使います。CKContentは何も属性を持ちません。
<cgikit name=OtherComponent>Content of parent</cgikit>
OtherComponent : MainPage {}
<b><cgikit name=Content></cgikit></b>
Content : CKContent {}
<b>Content of parent</b>
CKGenericElementは一般的なHTMLタグを生成します。
必須属性: tag
属性 | データ型 | 説明 |
---|---|---|
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には、以上のほかに任意の属性を定義することができます。定義した属性は「属性=値」の形式でタグに追加されます。