TOOL更新_viewをsmartyで。の続き。チェックボックス用のsmartyプラグインを追加した。
TOOL更新_viewをsmartyで。の続き。チェックボックス用のsmartyプラグインを追加した。
1.smartyプラグイン
■AppSmartyPlugin.php 修正 チェックボックス用のsmartyプラグインを追加した。 <<追加>> /** * ------------------------------------------------------------- * Smarty {kaz_html_checkbox} function plugin * * Type: function<br> * Name: kaz_html_checkbox<br> * Input:<br> * - elename コード名称 * - indata 入力値 * - name name * - idx elements_idx ('0':日本語、'1':英語) デフォルト='0' * - su 1行のITEM数 * Purpose: AppHtmlUtilからgetHTMLCheckBoxを取得して戻します。 * @param array * @param Smarty * @return HTMLCheckBox文字 * ------------------------------------------------------------- **/ function smarty_function_kaz_html_checkbox($params, &$smarty) { require_once('AppHtmlUtil.php'); $elements = AppElements::getInstance(); // コード一覧 if( isset($params['elename']) == false){ $smarty->trigger_error("kaz_html_checkbox: missing 'elename' parameter"); return; } if( array_key_exists('indata', $params) == false){ $smarty->trigger_error("kaz_html_checkbox: missing 'indata' parameter"); return; } if( isset($params['name']) == false){ $smarty->trigger_error("kaz_html_checkbox: missing 'name' parameter"); return; } if( isset($params['idx']) == false){ $params['idx'] = '0'; // 日本用 } if( isset($params['su']) == false){ $params['su'] = 5; // デフォルトは1行に5つ } if(mb_strwidth($params['elename']) == 0){ // パラメータに値がない場合 return ""; } return AppHtmlUtil::getHTMLCheckBox($elements->elements[$params['elename']], $params['indata'], $params['name'], $params['idx'], $params['su']); } /** * ------------------------------------------------------------- * Smarty {kaz_checkboxdispstr} function plugin * * Type: function<br> * Name: kaz_checkboxdispstr<br> * Input:<br> * - elename コード一覧(AppElements)のコード名 * - indata 入力値 * - idx elements_idx ('0':日本語、'1':英語) デフォルト='0' * Purpose: 指定されたコードのHTMLCheckBoxの文字列のみをエスケープして戻します。 * @param array * @param Smarty * @return string * ------------------------------------------------------------- **/ function smarty_function_kaz_checkboxdispstr($params, &$smarty) { $elements = AppElements::getInstance(); // コード一覧 if( isset($params['elename']) == false){ $smarty->trigger_error("kaz_checkboxdispstr: missing 'elename' parameter"); return; } if( array_key_exists('indata', $params) == false){ $smarty->trigger_error("kaz_checkboxdispstr: missing 'indata' parameter"); return; } if( isset($params['idx']) == false){ $params['idx'] = '0'; // 日本用 } if(mb_strwidth($params['elename']) == 0){ // パラメータに値がない場合 $rtn = ""; } return AppHtmlUtil::getHTMLCheckBoxDispStr($elements->elements[$params['elename']], $params['indata'], $params['idx']); }
■logininfoListView.htmlの「有効フラグ」を使って確認した。 <<確認用に追加>> {{kaz_html_checkbox elename='YUKO_FLG' indata=$o.srch_yuko_flg name="srch_yuko_flg" idx=$o.c_elements_idx su=10}}<br> {{kaz_checkboxdispstr elename='YUKO_FLG' indata=$o.srch_yuko_flg}}
3.common.php 修正
smartyプラグインを追加 <<追加>> $smarty->register_function("kaz_html_checkbox", "smarty_function_kaz_html_checkbox"); $smarty->register_function("kaz_checkboxdispstr", "smarty_function_kaz_checkboxdispstr");
6/15 20:30-23:00 http://d.hatena.ne.jp/kazpgm/20100519/1274286130を『■viewをphp(ver0.1)からsmarty(次期ver)へ置き換えた。(置き換え手法)』をこの内容で書き換えた。これで「AppHtmlUtil」のメソッドは全部smartyプラグインになった。