• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/要素]] [[:t/Wiki]] [[☆]]

機能の実装。ほとんどのプラグインはページ/要素。拡張の要。

- ページ/要素を使うためにXというフレームワークがある。
- 利用者によってページに記述され、ページごと呼び出される。
- 要素は利用者が入力した情報と、いろいろな機能を併せ持つもの。
-- 要素はページに記録された情報をオブジェクト化したもの。
-- 要素はいろいろ考えた機能の実装。要素の作り方は自由にしていい。
- 要素をページ上に配置するために使われるのが[[記法]]。
ビルトイン要素は簡易マークアップで。プラグイン要素は汎用記法で。
→ [[:Done/ページ型/スレッド/データコンテキスト/記法定義をまとめて設計#je7681db]]
- 要素はページに記述できるプラグイン。記述方法は→[[記法]]。
汎用記法か、管理者が定義した記法で記述すると機能するようになる。
- %%記法処理中にどの記法も汎用記法に置き換えられる。%%
→ 意味ない。編集時に記法を再現するので置き換える前のテキストは必要。汎用記法に置き換えたとしてもさらにオブジェクトに置き換えなければならないため何のキャッシュにもならない。

----

#contents


*[[:t/要素]]より [#ua6a9967]

**URLクエリー [#w0cc4629]

***[[:/検索式を使う検索]] [#m56b6643]
''利用するユースケースクラスによっては''URLクエリーがページと同じ型になる。ページとの違いはデータコンテキストの違いだけ。呼ばれたページに含まれるページ/要素は、URLクエリーからデータを引き出すことになる。

あるユースケースでは、URLクエリー上で一時的なページを作れる。レスポンスにはそのページが載る。複数のページをひとつのレスポンスにまとめたりできる。

RIGHT:[[:t/ユースケース]]
** いろいろなページ/要素 [#n7a72a0a]

***[[:i/レイアウト要素]] [#qfb35f0e]
随時作ればいい。
スタイルを与えるだけのもの。あるいは入口と出口の要素を分けて、出口をテンプレート内に配置。入口はページ本文で後から追加。入口の内容が出口にだけ表示される。

**未分類 [#t094a8b1]

***[[:i/時刻だけ書いたら同じページに書かれている日付を加味]] [#g3ec4985]
***[[:i/投稿時展開する記法は要らない]] [#t494053a]

***[[:i/階層化ページ名がタグなら一覧化しないと]] [#bf86cb4d]

**ページ/要素とは [#ia525a2a]

***[[:i/ページとは]] [#y7f86567]
ページ/要素はデータベーステーブル内のフィールドにあたる。ただし1要素で値1つ(1フィールドの1レコード分)。



***[[ページ/要素/API]] [#v9a941b9]
要素(機能の実装)がAPIを提供してもいい。制限しないだけ。サポートもしない。自由。
RIGHT:[[:t/API]] [[:t/要素]]




**ページ/要素ができること/しなくてもいいこと [#sdf5bce0]

***[[:i/リクエスト内のパラメーターと汎用記法のパラメーターは同じ]] [#r2d562d2]
呼び出され方を区別しなくていい。
データコンテキストの区別はデータコンテキスト名別のTo…メソッドでできるし。



***[[:i/クエリーにどう反応するか]] [#v2ea51d4]
要素の協調でリダイレクトをどう行なうか?

→リダイレクトは要素ではなくユースケースの役目。問題なし。

%%要素がリダイレクトを指示するなら他の要素の出力を抑えなければならない。協調しないということなので、不可。リダイレクトをするユースケースを呼び出すボタンを用意して、利用者に押してもらう(協調しないユースケースを呼んでもらう)ような方法なら可。%%

要素で行う場合でも、[[:i/レイアウト要素]]と同じように、HTMLヘッダーやHTTPヘッダーに出力できれば可能。要素から要素を呼ぶことになる。

RIGHT:[[:t/要素]] [[:t/実装]]
***[[:i/要素の展開タイミング]] [#k4332ba0]



***[[ページ/要素/UI]] [#k5398aa0]
拡張可能な要素のUIとは。
†[[:i/UIを使うページ要素]]

要素を呼び出すためのUIは記法。エディターと組み合わせて使う一大機能。
†[[記法]]
†[[汎用記法]]

RIGHT:[[:t/UI]] [[:t/要素]] [[:t/開発]] [[:t/記法]]



***[[:i/簡単なAPI]] [#c65a0538]
簡単不自由なAPIと、面倒自由なAPIの両方を用意。
引数の違い。

例えばページ/要素のコンストラクターを2種類用意。どちらかを定義すれば要素として使えるように。

RIGHT:[[:t/API]] [[:t/開発]] [[:t/要素]]



***[[ページ/要素/API#vcafaa10]] [#q1e224ba]
テストコード。
インストール時に動くか確認。
管理者が改造したときにも使える。運用しやすくなる。

UIは…ページ/要素クラス別のページ(複数のバージョンがある場合は下位ページでも作って)にあるテスト実行ボタンで。
テストが複数定義されていればその数だけボタンを表示するように。リフレクション→UIに反映。
テスト環境をどう作るのか。テスト用コードだけでできなければならない。

RIGHT:[[:t/開発]] [[:t/API]] [[:t/管理]]



***[[:i/エラーメッセージにクラス名]] [#y3fb5f7e]
エラーメッセージの書き方。
競合も矛盾もない。

エラーメッセージはエラー対処のためのUIでもある。
検索がサイト間のハブサイト、エラーメッセージはその検索へユーザーを誘導する。


RIGHT:[[:t/管理]] [[:t/開発]] [[:t/実装]]



***[[:i/汎用記法で名前付きパラメーター]] [#u041faad]



***[[:i/要素にはUsageを含める]] [#pbc25ee4]




**性質 [#g8639f13]

***[[:i/設定違いを別記法にするとシンプルに]] [#ed2bbc36]
設定はスペースにひとつ。その中に同じ要素のパラメーター違いを用意して、それぞれを別の記法にするのがいい。
***[[:i/複数行パラメーターの書き方]] [#dd35ce2d]
書き方…記法の問題。改行文字をどう扱うか。
***[[:i/要素3態]] [#efe11f51]
記法は別になった。要素はオブジェクト。
***[[:i/ページは要素のコンポジション]] [#p34dd91b]
ページに要素を与えると機能になるような設計。
ページが機能を持つので、ページ名が機能名になっていい。
***[[:i/要素は部品]] [#s08ea3a6]
要素は組み合わせて使う。
個々が機能を提供しなくてもいい。
***[[:i/要素がページに記述されたとき、Chain of Responsibilityで]] [#y336df0d]
→ [[:i/要素がページに記述されたとき、Chain of Responsibilityで?]]
要素間/ページ間の依存をなくす。それぞれが独立。連携するなら相手に依存することになる。プラグインが守らなければならないルールが無い代わりに、連携をサポートすることも無い。



***%%[[:/ページ全体も要素]]%% [#d01e8e41]



***[[:i/プラグイン要素は記法]] [#bfdf34e7]



プラグインは作る。要素の元になる上位クラス。
要素のプラグイン版として作るので、プラグインインターフェイスを実装した要素になる。
***[[:i/要素展開は閲覧時]] [#zf4ad7b0]



***[[:i/要素はChain of Responsibility]] [#de0ad35e]



***[[:i/ページ──要素間はコンポジションに]] [#cbce981c]



***[[:i/要素クラスの継承]] [#vabdfaec]



***[[:i/要素の使い方は2種類]] [#tf737297]



***[[:i/要素に使い方が2種類あっても実体は1つ]] [#f69d5c72]



***[[:i/要素はリクエストから直接呼び出されてもネスト可能]] [#bd2fc668]



***[[:i/要素呼び出しとMVC]] [#xeb24cb5]



**使われ方 [#w93325f6]
***[[:i/URLクエリーは一時的ページ]] [#d7fd2837]
***[[:i/要素を必要なときにインストール]] [#j7bbaff7]
***[[:i/システムが書くページ裏]] [#v8b779de]
***[[:i/ファセット検索のUI]] [#ifb6442e]
***[[:i/メールのテンプレートもページ]] [#na41da66]
***[[:i/ロールを作れるロール]] [#k79dec1f]
***[[:i/属性継承と権限継承は別]] [#hebf2432]
***[[:i/曖昧検索]] [#b3a02de2]
***[[:i/検索/キーワードの活用]] [#k75c4edc]
***[[:i/継承される領域]] [#kb990f1f]
***[[:i/複数ページのマージ]] [#fcce6def]
***[[:i/設定は公開する]] [#rf10fca2]
**いろいろなページ/要素 [#i168744f]
***[[:i/CSVファイルをページ要素のCSVに変換]] [#oc172186]
***[[:i/new機能を標準に]] [#sc9a9c60]
***[[:i/SVGをテキスト検索]] [#e07da764]
***[[:i/アクセスログはページの属性]] [#q4c292d1]
***[[:i/フォームは型とその配置を集めたもの]] [#f653a303]
***[[:i/ページセット演算]] [#wa83aa5a]
***[[:i/ライセンス表明]] [#m5a11009]
***[[:i/検索履歴はタグ一覧と同等]] [#f92a8d7b]
***[[:i/機能/分析]] [#hb7d8ef5]
***[[:i/機能]] [#od6e7ad0]
***[[:i/特別な記法]] [#nd4f8588]
***[[:i/通知はタスクリスト]] [#y9b1f92a]



*ページ/要素/ [#w1784890]
- [[ページ/要素でやること]]

#ls