「NabeAzzテンプレート問題・パート2」へ乗ってみる
MTプラグインや書籍などで有名なThe blog of H.Fujimotoの壱さんが、面白い記事を書いています。
以下引用します。
- 1から200の数を、1行あたり10列のテーブルにして出力します。
- テーブルの個々のセルの背景に色を付けて、市松模様になるようにします。
- 3で割り切れる数(例:6)は、bタグで囲みます。
- 3を含む数(例:13)は、uタグで囲みます。
- 5で割り切れる数(例:10)は、iタグで囲みます。
- 5を含む数(例:52)は、sタグで囲みます。
- 上記の4つの条件を複数満たす場合は、それらすべてを適用します。
例えば、51は3で割り切れて、かつ5を含みますので、bタグとiタグで囲みます。
また、135は上記4つの条件をすべて満たしますので、b/u/i/sのすべてのタグで囲みます。
MTSetvarTemplateを関数チックに用いるのが、トレンドのようなので、乗ってみました。
先頭のほうにある配列へタグを与えますが、ここだけ書き換えれば他のタグにするのが容易になっております。
少々コードが冗長になっているんですが、nameモデファイア以外のモデファイア(valueなど)にも配列を指定できれば、コードはもっとコンパクトになるんですが...(最初それをやってて、できなかったことを思い出した)。
コード
<style type="text/css">
<!--
table {
border-collapse : collapse;
}
td {
border : 1px solid black;
width : 70px;
padding : 2px 0;
text-align : center;
}
.evenbox {
background-color : #cccccc;
}
.oddbox {
background-color : #ccffff;
}
-->
</style>
<MTIgnore>変数を初期化</MTIgnore>
<MTSetVar name="inc" value="0">
<MTSetVar name="Simasima" value="0">
<MTIgnore>データを準備</MTIgnore>
<MTIgnore>(付与タグを変更するにはここを書き換えます)</MTIgnore>
<MTSetVar name="OpenTags" value="<b>":"<u>":"<i>":"<s>">
<MTSetVar name="CloseTags" value="</b>":"</u>":"</i>":"</s>">
<MTIgnore>しましまの判断</MTIgnore>
<MTSetVarTemplate name="CheckEvenOdd">
<MTSetVar name="Flag" value="$Simasima">
<MTIf name="Flag" value="2" op="%" eq="0">
<MTSetVar name="TableClassName" value="evenbox">
<MTElse>
<MTSetVar name="TableClassName" value="oddbox">
</MTIf>
</MTSetVarTemplate>
<MTIgnore>タグの付与、開始タグと終了タグをセットで返す</MTIgnore>
<MTSetVarTemplate name="CreateTagData">
<MTSetVar name="Flag" value="$inc">
<MTSetVarBlock name="OpenTag">
<MTIf name="Flag" op="%" value="3" eq="0">
<MTGetVar name="OpenTags[0]">
</MTIf>
<MTIf name="Flag" like="3">
<MTGetVar name="OpenTags[1]">
</MTIf>
<MTIf name="Flag" op="%" value="5" eq="0">
<MTGetVar name="OpenTags[2]">
</MTIf>
<MTIf name="Flag" like="5">
<MTGetVar name="OpenTags[3]">
</MTIf>
</MTSetVarBlock>
<MTSetVarBlock name="CloseTag">
<MTIf name="Flag" op="%" value="3" eq="0">
<MTGetVar name="CloseTags[0]">
</MTIf>
<MTIf name="Flag" like="3">
<MTGetVar name="CloseTags[1]">
</MTIf>
<MTIf name="Flag" op="%" value="5" eq="0">
<MTGetVar name="CloseTags[2]">
</MTIf>
<MTIf name="Flag" like="5">
<MTGetVar name="CloseTags[3]">
</MTIf>
</MTSetVarBlock>
</MTSetVarTemplate>
<MTIgnore>メイン処理</MTIgnore>
<table cellspacing="0" cellpadding="0">
<MTFor var="i" from="1" to="20">
<tr>
<MTSetVar name="Simasima" op="++">
<MTFor var="j" from="1" to="10">
<MTIgnore>インクリメント</MTIgnore>
<MTSetVar name="inc" op="++">
<MTSetVar name="Simasima" op="++">
<MTIgnore>関数(じゃないけど)コール</MTIgnore>
<MTGetVar name="CreateTagData"><MTIgnore>付与タグ</MTIgnore>
<MTGetVar name="CheckEvenOdd"><MTIgnore>しましま</MTIgnore>
<MTIgnore>出力</MTIgnore>
<td class="<MTGetVar name="TableClassName">"><MTGetVar name="OpenTag"><MTGetVar name="inc"><MTGetVar name="CloseTag"></td>
</MTFor>
</tr>
</MTFor>
</table>
貼ってみた
| 1 | 2 | 3 | 4 |
|
6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 |
|
16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 |
|
26 | 27 | 28 | 29 | 30 |
| 31 | 32 | 33 | 34 |
|
36 | 37 | 38 | 39 | 40 |
| 41 | 42 | 43 | 44 |
|
46 | 47 | 48 | 49 |
|
|
|
|
|
|
|
|
|
|
|
60 |
| 61 | 62 | 63 | 64 |
|
66 | 67 | 68 | 69 | 70 |
| 71 | 72 | 73 | 74 |
|
76 | 77 | 78 | 79 | 80 |
| 81 | 82 | 83 | 84 |
|
86 | 87 | 88 | 89 | 90 |
| 91 | 92 | 93 | 94 |
|
96 | 97 | 98 | 99 | 100 |
| 101 | 102 | 103 | 104 |
|
106 | 107 | 108 | 109 | 110 |
| 111 | 112 | 113 | 114 |
|
116 | 117 | 118 | 119 | 120 |
| 121 | 122 | 123 | 124 |
|
126 | 127 | 128 | 129 | 130 |
| 131 | 132 | 133 | 134 |
|
136 | 137 | 138 | 139 | 140 |
| 141 | 142 | 143 | 144 |
|
146 | 147 | 148 | 149 |
|
|
|
|
|
|
|
|
|
|
|
160 |
| 161 | 162 | 163 | 164 |
|
166 | 167 | 168 | 169 | 170 |
| 171 | 172 | 173 | 174 |
|
176 | 177 | 178 | 179 | 180 |
| 181 | 182 | 183 | 184 |
|
186 | 187 | 188 | 189 | 190 |
| 191 | 192 | 193 | 194 |
|
196 | 197 | 198 | 199 | 200 |
- カテゴリ:212MT4.1実験室
トラックバック(0)
このブログ記事を参照しているブログ一覧: 「NabeAzzテンプレート問題・パート2」へ乗ってみる
このブログ記事に対するトラックバックURL:
- Categories
- Entries
-
- MT4のテンプレートタグとプラグインでサインカーブを描く
- MT4.1:クマーを色々(MTSetvarTemplate)
- MT4分科会第2回勉強会に参加しました
- MTOS4.2RC1:各ページの拡張子を得る
- MTでAA
- MT4:MTの変数演算をプラグインで拡張
- MT4.1:「MT」という文字をテーブルの背景色で表現
- 「NabeAzzテンプレート問題・パート2」へ乗ってみる
- 作りたいプラグインの覚え書き
- 世界のナベアツをプラグインで表現
- MT4:世界のナベアツをテンプレートタグで表現(2)
- MT4.1:プラグインを書いてみよう
- MT4.1:予約変数の実験
- Movable Type 4.15 テスト中(1)
- mtde.info の、反省点
- mtde.info の、できる経緯
- MT4:前のエントリ・次のエントリのリンクをカテゴリごとに(条件あり)
- MT4:世界のナベアツをテンプレートタグで表現
- MT4.1:カテゴリ並べ替え・表示非表示切り替え(非プラグイン非カスタムフィールド)
- MT4.1:変数参照専用のモジュールの可能性
- MT4:XHTML+CSS素材テンプレート化の不具合修正・要望リスト
- MT4.1:Movable Type 4.1用テンプレート作った
コメントする