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

データベース活動モジュールのテンプレートを使用すると、データベースエントリを一覧表示、表示、編集するときに情報の視覚的なレイアウトを制御できます。これは、Open Office WriterやMicrosoft Wordなどのワードプロセッサで差し込み印刷メールで送信するのに使用される手法と似ています。


タグの使い方

データベース用に作成した各フィールドの内容といくつかの特別なタグ(以下に一覧表示)は、タグを使用して出力テンプレートに挿入できます。

フィールドの形式は
[[fieldname]]
。他のすべてのタグの形式は
##sometag##
。ページ左側のボックス内のタグを使用するには、まず[エディタを無効にする]をクリックしてから、ターゲット編集のテキスト領域にカーソルを置き、配置したいタグをクリックします。終了したら、をクリックしてテンプレートを保存します。あるいは、以下のように必要な記号の中に適切な名前を入力することもできます。
##this##
または
[[this]]
それぞれ。
  • ##edit##
    現在のエントリを編集できるクリック可能なアイコンリンクを作成します(これを行う権限がある場合にのみ表示されます)。
  • ##delete##
    現在のエントリを削除できるリンクを作成します(これを行う権限がある場合にのみ表示されます)。
  • ##approve##
    現在のデータベースエントリを承認できるリンクを作成します(これを行う権限がある場合にのみ表示されます)。
  • ##disapprove##
    現在のデータベースエントリを承認しないようにするリンクを作成します(これを行う権限がある場合にのみ表示されます)。
  • ##more##
    単一のビューへのリンクを作成します。これにはより詳細な情報が含まれる場合があります
  • ##moreurl##
    上記のリンクのURLだけを作成します。あなた自身のリンクを作成するのに役立ちます。リンクアイコンをクリックしてタイプすることができます
    ##moreurl##
    URLフィールドまたはソースビュータイプに
    <a href="##moreurl##">[[fieldname]]</a>
  • ##comments##
    コメントの表示/編集ページへのリンクを作成します。リンクテキストは現在のコメント数です(コメントがオンの場合にのみ表示されます)。
  • ##user##
    エントリを送信したユーザーのユーザーページへのリンクを作成します。リンクテキストはその名前です。
  • ##timeadded##
  • ##timemodified##
  • ##userpicture##
    リストビューでユーザーの写真を表示します
  • ##approvalstatus##
    インラインCSSとして挿入すると、未承認のエントリが強調表示されます。
  • ###tags###
    タグを表示する(サイト管理のタグ管理でデフォルトで有効になっています) - 3.4の新機能
## userpicture ##タグの例

リストテンプレート

このテンプレートを使用すると、一度に複数のエントリを表示するときに使用されるフィールドとそのレイアウトを制御できます(検索結果など)。このビューは、エントリをクリックしてそのエントリの単一のビューにアクセスすることによって、利用可能なより詳細な情報を含む概要を単に提供することが可能です。

リストテンプレートテーブルを作成する方法については、Moodleデータベース活動リストビューデザインするをご覧ください。

リストテンプレートは、データベースをCSVファイルとしてエクスポートする方法としても使用できます。

単一テンプレート

これは一度に1つのエントリを表示するために使用されるため、表示用のスペースが広くなります。たとえば、より大きいバージョンのイメージを使用したり、オプションでリストビューに表示されるよりも多くの情報を提供できます。

Databasesingletemplate.png

高度な検索テンプレート

詳細検索テンプレートは、詳細検索で使用されるインタフェースフォームを作成するためのものです。

テンプレートを追加

このテンプレートは、データベースエントリを追加または編集するときに使用されるインタフェースフォームを作成します。

RSSテンプレート

データベースエントリのRSSフィードの内容を制御できます。

CSSテンプレート

他のテンプレートのHTMLのいずれかで視覚的スタイルを提供するためにCSSが必要な場合は、ここでそれを指定できます。

JavaScriptテンプレート

JavaScriptを使用して、Listテンプレート、Singleテンプレート、またはAddテンプレートのいずれかに要素を表示する方法を操作できます。基本的には、操作したい部分を名前付きのhtml要素で囲む必要があります。操作の対象となる要素を特定できるため、命名は重要です。

たとえば、データベースに自分の名前を保存するフィールドがあり、リストビューに名前を表示するときに、名前がいくつかの基準に一致する回数を数えて結果を表示するとします。

あなたのデータベースは私達が "name"と呼ぶフィールドを含むでしょう。 Listテンプレートでは、その情報を表示したい場所に[[name]]コンストラクトを使用してそのフィールドの内容を表示できます。たとえば、リストテンプレートの繰り返しエントリでは、

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

ここでそのエントリを修正して、操作したい部分が名前付き要素であることを確認する必要があります。

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

リストビューのフッターには、結果を表示するための別の名前付き要素を含めることができます。

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

JavaScriptテンプレートは次のようになります。

 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に一致した名前の数も表示されます。

window.onloadはYUIコードへの依存関係を処理しないので、init()コードに必要なYUIモジュールはロードされず、コードは失敗します。

この場合、onloadの代わりに、

YUI().use('node', 'other', 'dependencies', function(Y) {

  // Your code here.

  // This function is a closure so the Y object you define in the function definition is yours and nothing else on the page should be able to break it.

});

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

データベースを初めて作成するときには、テンプレートに適切なHTMLが事前に入力されています。後でフィールドを追加する場合は、[ テンプレートリセット ]ボタンをクリックすると、同様に新しいフィールドにHTMLが追加されます。その間にテンプレートのいずれかを編集した場合、変更内容は失われます。テンプレートコードを変更する前にデータベースフィールドを完成させることをお勧めします。

関連情報

Moodleフォーラムディスカッションを使用する: