「データベーステンプレート」の版間の差分

提供:MoodleDocs
移動先:案内検索
(Done!!)
編集の要約なし
1行目: 1行目:
{{データベース}}
{{データベース}}
[[データベース活動モジュール]]のテンプレートを使用すると、データベースエントリを一覧表示、表示、編集する際に、情報の視覚的なレイアウトを制御することができます。これは、Open Office WriterやMicrosoft Wordなどのワープロソフトで文字を ''メールマージ'' するのに使われる手法に似ています。


[[データベースモジュール]]のテンプレートでは、データベースエントリを一覧表示、閲覧、編集する場合のビジュアルレイアウトをコントロールします。これは、Open Office WriterまたはMicrosoft Wordのような、ワードプロセッサの「メールマージ」機能で使用される技術に類似しています。
== タグの使用 ==
 
データベース用に作成した各[[データベースフィールド|フィールド]]の内容や、いくつかの特殊なタグ(以下に列挙)を、タグの使用により出力テンプレートに挿入することができます。
 
フィールドは<code><nowiki>[[フィールドネーム]]</nowiki></code>という書式で、それ以外のタグは<code>##タグ##</code>という書式で記述します。


== タグの使用 ==
ページ左のボックス内のタグを使用するには、まずクリックしてエディタを無効にし、目的の編集のテキストエリアにカーソルを置いて、配置したいタグをクリックします。終了したら、クリックしてテンプレートを保存します。また、<code>##コチラ##</code>や<code><nowiki>[[コチラ]]</nowiki></code>のような必要な記号の中に、それぞれ適切な名前を入力するだけでもかまいません。
 
* <code>##edit##</code> 現在のエントリを編集するためのクリック可能なアイコンリンクを作成します(編集する権限を持っている場合のみ表示されます)。
* <code>##delete##</code> 現在のエントリを削除するためのリンクを作成します(削除する権限を持っている場合のみ表示されます)。
* <code>##approve##</code> 現在のデータベースエントリを承認するためのリンクを作成します(承認する権限を持っている場合のみ表示されます)。
* <code>##disapprove##</code> 現在のデータベースエントリの承認を取り消すためのリンクを作成します(この操作を行う権限を持っている場合にのみ表示されます)。
* <code>##more##</code> より詳細な情報を含むシングルビューへのリンクを作成します。
* <code>##moreurl##</code> 上記のリンクのURLだけを作成するので、独自のリンクを作成するのに便利です。リンクアイコンをクリックして、URLフィールドに <code>##moreurl##</code>を入力するか、ソースビューで<pre><a href="##moreurl##">[[フィールドネーム]]</a></pre>を入力することができます。
* <code>##comments##</code> コメント閲覧/編集ページへのリンクを作成します。リンクテキストは現在のコメント数です (コメントがオンの場合のみ表示されます)。
* <code>##user##</code> エントリを投稿したユーザのページへのリンクを作成します。リンクテキストはユーザの名前です。
* <code>##timeadded##</code>
* <code>##timemodified##</code>
* <code>##userpicture##</code> リストビューにユーザ画像を表示します。
* <code>##approvalstatus##</code> インラインCSSとして挿入され、未承認のエントリのハイライトを提供します。
* <code>##tags##</code> タグを表示します(サイト管理の[[タグの管理|タグの管理]]でデフォルトで有効になっています)。 - '''new in 3.4'''
 
[[File:userpicture.png|thumb|center|600px|##userpicture## タグの例]]


あなたがデータベースに作成したコンテンツの[[データベースフィールド|フィールド]]およびスペシャルタグ (以下に記載) は、タグを使用した出力用テンプレートに挿入することができます。左サイドにあるタグを使用するには、HTMLエディタであなたが編集したい場所をクリックしてください。左サイドのボックス内にある使用したいタグをクリックするとエディタ内にタグが配置されます。または、次のように必須記号に挟まれたタグ名を入力することでタグを配置できます <nowiki>##this## または [[this]]</nowiki>。
==一覧表示のテンプレート==
このテンプレートを使用すると、複数のエントリを一度に表示する際(検索結果など)に使用するフィールドとそのレイアウトを制御することができます。このビューは、単に概要を提供し、エントリをクリックしてそのエントリのシングルビューにアクセスすることで、より詳細な情報を利用できる可能性があります。


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


タグの使用に関するデモビデオはこちら:
リストテンプレートは、CSVファイルとして[[データベースのエクスポート|エクスポート]]する方法としても使用できます。
http://video.google.com/videoplay?docid=7026851446099005477


== 一覧表示用テンプレート ==
==個別表示のテンプレート==


このテンプレートでは、1度に複数エントリを表示する場合 (例 検索結果) のフィールドレイアウトをコントロールすることができます。「一覧表示」ではエントリの要約を表示して、クリックすることでエントリの詳細情報を表示する「個別表示」リンクを設置することができます。
これは、一度に1つのエントリを表示するために使用されるため、表示スペースが広く、例えば、画像の拡大版を使用したり、オプションとしてリストビューで表示されるよりも多くの情報を提供することができます。


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


== 個別表示用テンプレート ==
==詳細検索テンプレート==


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


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


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


== RSSテンプレート ==
== RSSテンプレート ==


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


== CSSテンプレート ==
== CSSテンプレート ==


あなたの他のテンプレート内の[[HTML]]にビジュアルデザイン用の[[CSS]]が必要な場合、ここに記述することができます。
あなたの他のテンプレート内の[[MoodleにおけるHTML|HTML]]が視覚的なスタイルを提供するために[[CSS]]を必要とする場合、ここでそれを指定することができます。


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


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


例えば、あなたのデータベースに氏名を保存するフィールドがあり、一覧表示で氏名がクライテリアと合致する回数を表示したいとします。
例えば、データベースに人の名前を保存するフィールドがあり、リストビューに名前を表示する際に、名前がある基準に一致する回数をカウントし、その結果を表示したいとします。


あなたのデータベースは「name」というフィールドを含んでいます。一覧表示用テンプレートでは、あなたが情報を表示したい場所に<nowiki>[[name]]</nowiki>コンストラクトを使うことで、フィールドのコンテンツを表示することができます。例えば、一覧表示用テンプレートの「繰り返しエントリ」に以下のように記述します:
データベースには、"name" と呼ぶフィールドが含まれます。リストテンプレートでは、情報を表示したい場所で <nowiki>[[name]]</nowiki> 構造体を使用することによって、そのフィールドの内容を表示することができるようになります。例えば、リストテンプレートの ''繰り返し入力'' では、次のようになります。


<pre>
<pre>
56行目: 71行目:
</pre>
</pre>


そして、あなたが操作したい名前付きエレメントを明確にするため、以下のように修正してください:
ここで、操作したい部分が名前付き要素であることを確認するために、このエントリを修正する必要があります。


<pre>
<pre>
66行目: 81行目:
</pre>
</pre>


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


<pre>
<pre>
72行目: 87行目:
</pre>
</pre>


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


<pre>
<pre>
90行目: 105行目:
</pre>
</pre>


ここでは通常どおり、氏名が一覧表示されます。そして、一覧表示下部に「foo」または「Foo」に合致する氏名の件数が表示されます。
これで、リストビューで通常通り名前の表が表示されます。今度は一番下に、fooまたはFooにマッチした名前のカウントも表示されます。
 
window.onloadは、[https://docs.moodle.org/dev/Javascript_FAQ#What_JavaScript_library_does_Moodle_use.3F YUI]コードへの依存を処理しないので、init() コードで必要なYUIモジュールがロードされず、コードが失敗する可能性があることに注意しましょう。
 
この場合、onloadの代わりに使用します:
<pre>
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.
 
});
</pre>


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


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


==関連情報==
==関連項目==
*[[データベースプリセット]]
*[http://video.google.com/videoplay?docid=7026851446099005477 タグの使い方を紹介する動画]


以下、データベーステンプレートに関するUsing Moodleフォーラムのディスカッションです:  
Moodleのフォーラムディスカッションの利用:
*[http://moodle.org/mod/forum/discuss.php?d=55338 データベースモジュールの外観] - 英語
*[http://moodle.org/mod/forum/discuss.php?d=55338 データベースモジュールの外観]
*[http://moodle.org/mod/forum/discuss.php?d=74243 どのようにすればデータベースの情報を縦ではなく横に一覧表示できますか?] - 英語
*[http://moodle.org/mod/forum/discuss.php?d=74243 データベースの情報を縦ではなく横に並べるにはどうしたらいいですか?]
*[http://moodle.org/mod/forum/discuss.php?d=61179 Moodleサイトの「Modules and plugins」のように表示したい場合] - 英語
*[http://moodle.org/mod/forum/discuss.php?d=61179 Moodleサイトのモジュールやプラグインを表示させたい方]
*[http://moodle.org/mod/forum/discuss.php?d=84050 一覧表示用のカラムを取得できません] - 英語
*[http://moodle.org/mod/forum/discuss.php?d=84050 リストビューで列を並べることができない]
*[http://moodle.org/mod/forum/discuss.php?d=86927 データベースエントリのタイムスタンプ?]


[[en:Database_templates]]
[[en:Database templates]]
[[de:Datenbankvorlagen]]
[[es:Plantillas de BasedeDatos]]
[[fr:Modèles]]
[[ru:Шаблоны]]

2022年1月21日 (金) 05:01時点における版

データベース活動モジュールのテンプレートを使用すると、データベースエントリを一覧表示、表示、編集する際に、情報の視覚的なレイアウトを制御することができます。これは、Open Office WriterやMicrosoft Wordなどのワープロソフトで文字を メールマージ するのに使われる手法に似ています。

タグの使用

データベース用に作成した各フィールドの内容や、いくつかの特殊なタグ(以下に列挙)を、タグの使用により出力テンプレートに挿入することができます。

フィールドは[[フィールドネーム]]という書式で、それ以外のタグは##タグ##という書式で記述します。

ページ左のボックス内のタグを使用するには、まずクリックしてエディタを無効にし、目的の編集のテキストエリアにカーソルを置いて、配置したいタグをクリックします。終了したら、クリックしてテンプレートを保存します。また、##コチラ##[[コチラ]]のような必要な記号の中に、それぞれ適切な名前を入力するだけでもかまいません。

  • ##edit## 現在のエントリを編集するためのクリック可能なアイコンリンクを作成します(編集する権限を持っている場合のみ表示されます)。
  • ##delete## 現在のエントリを削除するためのリンクを作成します(削除する権限を持っている場合のみ表示されます)。
  • ##approve## 現在のデータベースエントリを承認するためのリンクを作成します(承認する権限を持っている場合のみ表示されます)。
  • ##disapprove## 現在のデータベースエントリの承認を取り消すためのリンクを作成します(この操作を行う権限を持っている場合にのみ表示されます)。
  • ##more## より詳細な情報を含むシングルビューへのリンクを作成します。
  • ##moreurl## 上記のリンクのURLだけを作成するので、独自のリンクを作成するのに便利です。リンクアイコンをクリックして、URLフィールドに ##moreurl##を入力するか、ソースビューで
    <a href="##moreurl##">[[フィールドネーム]]</a>
    を入力することができます。
  • ##comments## コメント閲覧/編集ページへのリンクを作成します。リンクテキストは現在のコメント数です (コメントがオンの場合のみ表示されます)。
  • ##user## エントリを投稿したユーザのページへのリンクを作成します。リンクテキストはユーザの名前です。
  • ##timeadded##
  • ##timemodified##
  • ##userpicture## リストビューにユーザ画像を表示します。
  • ##approvalstatus## インラインCSSとして挿入され、未承認のエントリのハイライトを提供します。
  • ##tags## タグを表示します(サイト管理のタグの管理でデフォルトで有効になっています)。 - new in 3.4
##userpicture## タグの例

一覧表示のテンプレート

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

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

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

個別表示のテンプレート

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

Databasesingletemplate.png

詳細検索テンプレート

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

追加のテンプレート

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

RSSテンプレート

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

CSSテンプレート

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

Javascriptテンプレート

javascriptを使用すると、リスト、単一、追加の各テンプレートで要素の表示方法を操作することができます。基本的には、操作したい部分を何らかの名前の付いた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>

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のフォーラムディスカッションの利用: