Contenu connexe
Similaire à よくわかる条件分岐 (8)
よくわかる条件分岐
- 3. 伊藤のりゆき
• 有限会社トゴル・カンパニー 代表取締役
• オーサリングエンジニア
• 1-3「Movable Typeテンプレートのカスタマイ
ズ基礎」執筆
• 『Movable Type⼊⾨』(Think IT)
• 『NORIのFlashユーザのためのMovable Type
講座 gihyo.jp版』
• Twitter : @nori_togoru
• Facebook facebook.com/nori.3oclock
バージョンアップ • トゴル・カンパニー togoru.net
• 個⼈サイト 3oclock.com
『Movable Type プロフェッショナル・スタイル MT4.1対応』
- 6. 変数…
• 数値や⽂字など⾃由に
設定できる仮定の値(あたい)
• 名前=変数名「sample」
• nameモディファイア
↓
name =“sample”
- 8. 3つのパターン
• フラグ
変数値が1かどうか
• ⼆択
変数値が1か2か
• より複雑
変数値が1か2か3か……etc
値が0の場合=特別な意味なので除外
- 16. メッセージを表⽰するには…
フラグを⽴てる
変数「sample」に1をセット
<mt:If name=“sample”>
メッセージ
</mt:If>
- 19. フラグを利⽤するMTテンプレート
(2)
<mt:SetVar name=“sample” value=“1”>
<mt:If name =“sample”>
メッセージ
</mt:If>
- 23. 素朴な疑問
1. sampleの値が1以外の時は?
2,3,10,100,-1,-100,0.4,-0.5,0…
2. sampleの値が⽂字の時は?
“あ” ”a” ”A” “ABC”…
3. sampleとSAMPLE、Sampleは同じ結
果?
テストしてみた
- 39. 検証結果
• sampleの値が1以外の時は?
→0(ゼロ)の時だけ、メッセージなし
マイナスも、0.5も、メッセージあり
• sampleの値が⽂字の時は?
→メッセージあり
• sampleとSAMPLEは同じ結果?
→同じ結果=⼤⽂字⼩⽂字は無関係
- 40. テンプレートが⾃⼰判断
カテゴリ別 ⽉別ブログ記事リスト ウェブページ
ブログ記事リスト
<mt:SetVar
name=“catArchive”
value=“1”>
<mt:Include>
<mt:Include> <mt:Include>
フラグで⾃⼰判断する
テンプレートモジュール
<mt:If name=“catArchive”>
〜カテゴリ別ブログ記事リスト専⽤処理〜
</mt:If>
- 43. アーカイブテンプレートを識別する予約変数名を表⽰する
• アーカイブの種類によって表⽰する予約
変数名が異なる
<mt:SetVar name=“class-name” value=“$archive_class”>
<mt:If name=“class-name”>
<mt:SetVarBlock name=“class_name”><mt:GetVar replace=“-”,“_” name=“class-name”></mt:SetVarBlock>
<p>予約変数:<mt:GetVar name="class_name"> = <mt:GetVar name="$class_name"></p>
</mt:If>
- 46. 「1か」
具体的な値との⽐較
=
モディファイア「eq」
<mt:If name=“sample” eq=“1” >
メッセージ・・・sampleは1です
</mt:If>
- 50. ⽐較(演算⼦)のモディファイア2
lt … less than
<
未満
gt … greater than
>
他にもあるので
より⼤きい オンラインヘル
プを参照
- 51. より複雑
1か2か3か……etc
<mt:If>で判断できるのは1つ
↓
判別したいのは3個以上
(2個までなら<mt:Else>を利⽤)
↓
判別する数だけ繰り返す
- 52. <mt:If>の繰り返し
<mt:If name=“sample” eq=“1” >
sampleは「1」です
</mt:If>
<mt:If name=“sample” eq=“2” > メリット:分岐の数
sampleは「2」です が増えても繰り返す
</mt:If> だけなので分かりや
すい
<mt:If name=“sample” eq=“3” > デメリット:
sampleは「3」です sample=1だと、そ
</mt:If> の後の分岐はテスト
する必要がないが、
実⾏してしまう
- 53. より⾼度に
<mt:If name=“sample” eq=“1”>
sample は1です
<mt:ElseIf eq=“2”>
sample は2です
<mt:ElseIf eq=“3”>
sample は3です
<mt:Else> メリット:sample=1の時は
sample は4です <mt:If>を1度しか実⾏しな
くてよい
</mt:If>
デメリット:分岐が複雑にな
ると混乱する
- 55. まとめ:条件分岐(2)
3つのパターン
• フラグ
1かどうか
nameモディファイア
• ⼆択
1か2か
⽐較演算⼦(eq,ne……)
<mt:Else>
• より複雑
1か2か3か……etc
繰り返し