Under the Bridge

a Picture of the Late Him

「NabeAzzテンプレート問題・パート2」へ乗ってみる

2008年4月14日 12:36 | Writer: yoshi | 記事本文 | コメント(0) | トラックバック(0)

MTプラグインや書籍などで有名なThe blog of H.Fujimotoの壱さんが、面白い記事を書いています。

NabeAzzテンプレート問題・パート2

以下引用します。

  • 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 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150
151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170
171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190
191 192 193 194 195 196 197 198 199 200

トラックバック(0)

このブログ記事を参照しているブログ一覧: 「NabeAzzテンプレート問題・パート2」へ乗ってみる

このブログ記事に対するトラックバックURL:

コメントする






Categories
Entries
Feed
スポンサードリンク

parts

フィードメーター - Under the Bridge

あわせて読みたい

なかのひと

2008 yoshi(apstar)