MW211 EXIT

devlog
Smarty/変数未定義補填
2018年05月10日
┌──────────────────────────────────────┐
│{if $is他条件}{assign var="変数" value="0"}{/if}                            │
│                                                                            │
│{$変数}                                                                     │
└──────────────────────────────────────┘
上記のような場合、「$is他条件」が「false」だと、
「$変数」が未定義となりエラーとなる。
「Notice:  Undefined index: 変数 in ~」

こういった場合には、以下のように「isset()」で存在を判定して
補填してあげればよい。
┌──────────────────────────────────────┐
│{if !isset($変数)}{assign var="変数" value="0"}{/if}                        │
└──────────────────────────────────────┘

こんな感じになる
┌──────────────────────────────────────┐
│{if $is他条件}{assign var="変数" value="0"}{/if}                            │
│                                                                            │
│{if !isset($変数)}{assign var="変数" value="0"}{/if}                        │
│{$変数}                                                                     │
└──────────────────────────────────────┘
分類:Smarty
Smarty/変数
2018年05月09日
Smartyテンプレート中で変数を定義して使用する方法は以下の通り。
┌────┬─────────────────────────────────┐
│値の代入│{assign var="変数" value="値"}                                    │
├────┼─────────────────────────────────┤
│値の出力│{$変数}                                                           │
└────┴─────────────────────────────────┘
値を代入する時には「$」が要らない点に注意。

値を代入する際に、別変数を参照する場合には、{}をネストしてもよいし
そのまま変数を直書きしてもよい。
なお、{}の代わりに``も使える。
┌────┬─────────────────────────────────┐
│値の代入│{assign var="変数" value="$別変数"}                               │
├────┼─────────────────────────────────┤
│値の代入│{assign var="変数" value="{$別変数}"}                             │
├────┼─────────────────────────────────┤
│値の代入│{assign var="変数" value="`$別変数`"}                             │
└────┴─────────────────────────────────┘

なお、修飾子(escape修飾子など)をつける場合には、囲いが必要。
┌────┬─────────────────────────────────┐
│値の代入│{assign var="変数" value="{$別変数|escape}"}                      │
├────┼─────────────────────────────────┤
│値の代入│{assign var="変数" value="`$別変数|escape`"}                      │
└────┴─────────────────────────────────┘
囲わずに直書きすると、変数+「|escape」という文字列に解釈されてしまう。
分類:Smarty
Smarty/置換
2018年05月08日
下記のような感じで置換ができる。
┌──────────────────────────────────────┐
│{$変数|replace:'置換前':'置換後'}                                           │
└──────────────────────────────────────┘

他との併用も可能。
┌──────────────────────────────────────┐
│{$変数|replace:'置換前':'置換後'|escape}                                    │
└──────────────────────────────────────┘

なお、あくまでPHP上で置換するので、「\→\\」の置換は以下のように倍になる。
┌──────────────────────────────────────┐
│{$変数|replace:'\\':'\\\\'}                                                 │
└──────────────────────────────────────┘
分類:Smarty
Smarty/出力結果を変数に格納
2018年05月07日
┌──────────────────────────────────────┐
│$smarty = new Smarty;                                                       │
│$smarty->display('テンプレート.tpl');                                       │
└──────────────────────────────────────┘
通常は、上記のように出力するのだが、
どういう結果なのかログで確認したりしたくて変数に代入したい場合。

display()をfetch()に切り替えてあげればよい。
┌──────────────────────────────────────┐
│$smarty = new Smarty;                                                       │
│$変数 = $smarty->fetch('テンプレート.tpl');                                 │
└──────────────────────────────────────┘
分類:Smarty
JavaScript/setTimeout()とclearTimeout()
2018年05月01日
┌──────────────────────────────────────┐
│var gタイマID = false;                                                      │
│var g周期ミリ秒 = 1000;                                                     │
│$(function() {                                                              │
│    $('#停止ボタン').on('click', function() {                               │
│        if (gタイマID !== false) {                                          │
│            clearTimeout(gタイマID);                                        │
│            gタイマID = false;                                              │
│        }                                                                   │
│    });                                                                     │
│    $('#再開ボタン').on('click', function() {                               │
│        gタイマID = setTimeout(タイマイベント関数, g周期ミリ秒);            │
│    });                                                                     │
│    // タイマ起動                                                           │
│    gタイマID = setTimeout(タイマイベント関数, g周期ミリ秒);                │
│});                                                                         │
├──────────────────────────────────────┤
│function タイマイベント関数() {                                             │
│    // (処理)                                                               │
│    // 次の周期                                                             │
│    gタイマID = setTimeout(タイマイベント関数, g周期ミリ秒);                │
│}                                                                           │
└──────────────────────────────────────┘
分類:JavaScript
前へ 1 2 次へ