拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
SQLToolsプラグイン(その3・SQLの結果をオブジェクトとして読み込む)
SQLToolsプラグインでは、SQLで読み込んだデータを、Movable Typeのオブジェクトとして扱うことができます。
1.SQLの作成
まず、オブジェクトを読み込むためのSQLを作成します。
このSQLでは、オブジェクトのIDだけを返すようにします。
例えば、IDが1番のブログで、公開されている記事の中から最新10件を読み込みたいとします。
この場合、「SQLクエリ」→「新規」のメニューでSQLを新規作成し、以下のSQLを入力します。
SELECT entry_id FROM mt_entry WHERE entry_class = 'entry' AND entry_status = 2 AND entry_blog_id = 1 ORDER BY entry_authored_on DESC LIMIT 10
2.MTSQLObjectsタグの基本
SQLを利用してオブジェクトを読み込むには、「MTSQLObjects」というテンプレートタグ(ブロックタグ)を使います。
2-1.typeモディファイア
MTSQLObjectsタグでは、「type」と「name」の2つのモディファイアを必ず指定します。
typeモディファイアでは、読み込むオブジェクトの種類を、以下の表から選んで指定します。
オブジェクトの種類 | typeモディファイアに指定する値 |
---|---|
記事 | entry |
ウェブページ | page |
カテゴリ | category |
フォルダ | folder |
アイテム | asset |
コメント | comment |
トラックバック | ping |
ブログ | blog |
ウェブサイト | website |
ユーザー | author |
2-2.nameモディファイア
nameモディファイアでは、SQLクエリにつけた名前を指定します。
例えば、前述の1.の手順で作ったSQLクエリに、「最近の記事」という名前を付けたとします。
この場合、MTSQLObjectsタグに「name="最近の記事"」のモディファイアを指定します。
2-3.MTSQLObjectsタグのブロック内で各オブジェクトのテンプレートタグを使う
MTSQLObjectsタグのブロック内では、オブジェクトの種類に応じたMovable Type標準のテンプレートタグを使うことができます。
例えば、MTSQLObjectsタグに「type="entry"」のモディファイアを指定した場合、以下の例のように、記事に関するテンプレートタグ(MTEntryTitleなど)を使うことができます。
<mt:SQLObjects name="最新の記事" type="entry"> <mt:EntriesHeader><ul></mt:EntriesHeader> <li><$mt:EntryTitle$></li> <mt:EntriesFooter></ul></mt:EntriesFooter> </mt:SQLObjects>
3.MTSQLObjectsタグのその他の機能
上記で挙げたほかに、MTSQLObjectsタグには以下のような機能があります。
3-1.glueモディファイア
オプションのモディファイアとして、「glue」があります。
これは、他のブロックタグのglueモディファイアと同様に、繰り返し1件ごとに、その間に出力する内容を指定します。
例えば、「glue=","」のモディファイアを付加したとします。
この場合、オブジェクトを1回出力するごとに、「,」の文字が出力されます。
3-2.MTSQLObjectCountタグ
読み込んだオブジェクトの数を出力するファンクションタグです。
MTSQLObjectsタグのブロックの中で使うことができます。
3-3.MTSQLObjectsHeader/MTSQLObjectsFooterタグ
MTSQLObjectsタグのブロックの繰り返しで、最初/最後の繰り返しを判断するブロックタグです。
3-4.ブロック内で使える変数
Movable Type標準のブロックタグと同様に、ブロック内では以下のの変数を使うことができます。
なお、各変数名の前後にある「__」は、アンダースコア2回です。
変数名 | 内容 |
---|---|
__first__ | 繰り返しの1回目なら1、それ以外なら0 |
__last__ | 繰り返しの最後なら1、それ以外なら0 |
__odd__ | 繰り返しの奇数回目なら1、それ以外なら0 |
__even__ | 繰り返しの偶数回目なら1、それ以外なら0 |
__counter__ | 現在の繰り返し回数 |