データベーステンプレート

2007年12月4日 (火) 19:28時点におけるMitsuhiro Yoshida (トーク | 投稿記録)による版 (Done!!)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内, 検索
データベースモジュールのテンプレートでは、データベースエントリを一覧表示、閲覧、編集する場合のビジュアルレイアウトをコントロールします。これは、Open Office WriterまたはMicrosoft Wordのような、ワードプロセッサの「メールマージ」機能で使用される技術に類似しています。

タグの使用

あなたがデータベースに作成したコンテンツのフィールドおよびスペシャルタグ (以下に記載) は、タグを使用した出力用テンプレートに挿入することができます。左サイドにあるタグを使用するには、HTMLエディタであなたが編集したい場所をクリックしてください。左サイドのボックス内にある使用したいタグをクリックするとエディタ内にタグが配置されます。または、次のように必須記号に挟まれたタグ名を入力することでタグを配置できます ##this## または [[this]]。

  • ##Edit## 現在のエントリを編集するためのリンクを作成します (あなたに権限がある場合のみ表示されます)。
  • ##More## さらに詳細情報を含んでいるデータの個別表示のためのリンクを作成します。
  • ##MoreURL## データベースエントリの直リンクのURLを作成します。「More」および「URL」の間に空白は入りませんので注意してください。テキストを入力および選択した後、HTMLエディタのリンクアイコンをクリックして「##MoreURL##」と入力することができます。また、HTMLエディタをHTMLソースモードにして次のように入力することもできます: <a href="##moreurl##">[[fieldname]]</a>
  • ##Delete## 現在のエントリを削除するためリンクを作成します (あなたに権限がある場合のみ表示されます)。
  • ##Approve## 現在のエントリを認証するためのリンクを作成します (あなたに権限がある場合のみ表示されます)。
  • ##Comments## コメントページの表示/編集リンクを作成します。リンクテキストは現在のコメント数です (コメントが有効にされている場合のみ表示されます)。
  • ##User## エントリを投稿したユーザのユーザページへのリンクを作成します。リンクテキストは、ユーザ名です。

タグの使用に関するデモビデオはこちら: http://video.google.com/videoplay?docid=7026851446099005477

一覧表示用テンプレート

このテンプレートでは、1度に複数エントリを表示する場合 (例 検索結果) のフィールドレイアウトをコントロールすることができます。「一覧表示」ではエントリの要約を表示して、クリックすることでエントリの詳細情報を表示する「個別表示」リンクを設置することができます。

一覧表示用テンプレートは、あなたのデータベースをCSVファイルにエクスポートする手段としても使用できます。

個別表示用テンプレート

このテンプレートは、十分なスペースを確保して、一度にひとつのエントリ表示するために使用します。例えば、大きな画像を含んでいたり、一覧表示では表示できないような詳細情報を含んでいるエントリに使用することができます。

エントリ追加用テンプレート

このテンプレートでは、データベースエントリを追加および編集するためのインターフェースフォームを作成します。テンプレートを保存することで、あなたが既に保存している既存のテンプレートを上書きします。再利用のため、名前付きテンプレートを作成 (インポート、エクスポート) できる機能の開発が計画されていますが、まだ実装されていません。現在は他の場所で再利用するため、テンプレートをコピー&ペーストすることができます。

RSSテンプレート

このテンプレートでは、データベースエントリのRSSフィードのコンテンツをコントロールできるようにします。

CSSテンプレート

あなたの他のテンプレート内のHTMLにビジュアルデザイン用のCSSが必要な場合、ここに記述することができます。

Javaスクリプトテンプレート

一覧表示、個別表示、エントリ追加のテンプレートごとに、エレメントを操作するためJavaスクリプトを使用することができます。あなたが操作したい部分は、基本的に名前付きhtmlエレメントで囲む必要があります。操作するエレメントを識別させるため、名前付けは必須です。

例えば、あなたのデータベースに氏名を保存するフィールドがあり、一覧表示で氏名がクライテリアと合致する回数を表示したいとします。

あなたのデータベースは「name」というフィールドを含んでいます。一覧表示用テンプレートでは、あなたが情報を表示したい場所に[[name]]コンストラクトを使うことで、フィールドのコンテンツを表示することができます。例えば、一覧表示用テンプレートの「繰り返しエントリ」に以下のように記述します:

 <table>
   <tr>
     <td>Name: [[name]]</td>
   </tr>
 <table>  

そして、あなたが操作したい名前付きエレメントを明確にするため、以下のように修正してください:

 <table>
   <tr>
     <td name="named">Name: [[name]]</td>
   </tr>
 <table>  

結果を表示するため、フッタには別の名前付きエレメントを含むことができます:

  <div name="result"></div>

そして、あなたのJavaスクリプトテンプレートは以下のようになります:

 var cnt = 0;
 var re = /foo|Foo/;
 
 function init(){
   var namedElements = document.getElementsByName("named");
   for (i=0; i < namedElements.length; i++) {
       if(re.test(namedElements[i].innerHTML)) cnt++;
     }
   var namedResult = document.getElementsByName("result");
   namedResult[0].innerHTML = cnt;
   }
 
 window.onload = init;

ここでは通常どおり、氏名が一覧表示されます。そして、一覧表示下部に「foo」または「Foo」に合致する氏名の件数が表示されます。

テンプレートのリセットボタン

あなたが最初にデータベーステンプレートを作成した場合、適切なHTMLが記述されます。後にフィールドを追加して、「テンプレートをリセットする」ボタンをクリックすることで、同様に新しいフィールドのHTMLの記述が追加されます。あなたが以前に変更したテンプレートの内容は、「テンプレートをリセットする」ボタンのクリックにより失われます。テンプレートコードを修正する前に、データベースフィールドの追加および変更を完了されることをお勧めします。

関連情報

以下、データベーステンプレートに関するUsing Moodleフォーラムのディスカッションです: