TOOL更新_viewをsmartyで。の続き。これはボツにしたもの。自分用備忘録
TOOL更新_viewをsmartyで。の続き。
logininfoDetailView.htmlに以下のようなところがある。(英語指定のときは"Management "、日本語指定のときは"ログイン情報管理"と表示する。・・・お助けTOOLは英語の画面、日本語の画面、両方入った画面を作ることができる。これは画面を使う日本にいる英語人用のWEBも自動作成◎自動生成してしまおう。と、考えているから。)
<h1><?=$o['c_elements_idx']=='0'?"":"Management "?>ログイン情報 <?=$o['c_elements_idx']=='0'?"管理":""?></h1>
これをsmartyにおきかえる。、、、、、と、{{if $o.c_elements_idx == "0"}}・・・になるか。とおもったが、雑雑してくるので、ここはsmarty「テンプレート関数プラグイン」を使って、三項演算子っぽいプラグイン関数を新規で作ろう。、、、今日はアイデアだけ。<=5/13 三項演算子っぽいプラグイン関数はできない。みたいなので、この文章も取り消し線いれた。・・・{{if}}でやることにした。{{if}}は使ってみたら使い勝手いい。これなら三項演算子いらない。smarty作った人も演算子はifでやらせようと思っているのだろう。
★==これが動いた。{{if}}でのもの==まあ、普通のやり方なので、動くの当然。
<h1>{{if $o.c_elements_idx == '0'}}{{else}}Management{{/if}}ログイン情報 {{if $o.c_elements_idx == '0'}}管理{{/if}}</h1>
・・・・作ったがボツにしたものを残しておく。
★==ここからが、動かないので、作ったがボツにしたもの==
■common.php 修正 「テンプレート関数プラグイン」の読み込みはうまく行った。
<<追加>> //Smarty Plugin require_once('AppSmartyPlugin.php'); $smarty->register_function("clause3ope", "smarty_function_clause3ope");
■AppSmartyPlugin.php 新規 注意:これはボツにしたもの。自分用備忘録です。・・・忘れないために残しておくだけです。動くけど、使うことはないだろう。
<?php /** * AppSmartyPlugin.php */ /** * ------------------------------------------------------------- * Type: function * Name: clause3ope * Purpose: 3項演算子を行う。 注意:これはボツにしたもの。自分用備忘録です。 * ------------------------------------------------------------- **/ function smarty_function_clause3ope($params, &$smarty) { if( isset($params['arg1']) == false){ $smarty->trigger_error("clause3ope: missing 'arg1' parameter"); return; } if( isset($params['arg2']) == false){ $smarty->trigger_error("clause3ope: missing 'arg2' parameter"); return; } if( isset($params['arg3']) == false){ $smarty->trigger_error("clause3ope: missing 'arg3' parameter"); return; } return $params['arg1'] ? $params['arg2'] : $params['arg3']; } ?>
■logininfoDetailView.html 修正 「($o.c_elements_idx == '0')」がコンパイルエラーになる。これができないならこのアイデアはボツ。・・・でも{{if}}で十分だった。
「=」をattribute nameだと思うみたいだ。ここでは「==」使えないということ。
『Fatal error: Smarty error: [in view/admin/err/logininfoDetailView.html line 999]: syntax error: invalid attribute name: '=' (Smarty_Compiler.class.php, line 1550) in C:\Tools\XAMPP\xampplite\htdocs\samples\kaz\.php\smarty\Smarty.class.php on line 1093』
<<変更前>> <h1><?=$o['c_elements_idx']=='0'?"":"Management "?>ログイン情報 <?=$o['c_elements_idx']=='0'?"管理":""?></h1> <<変更後>> <h1>{{clause3ope arg1=($o.c_elements_idx == '0') arg2='' arg3='Management '}}ログイン情報 {{clause3ope arg1=($o.c_elements_idx == '0') arg2='管理' arg3=''}}</h1>
★==ここまでが、作ったが、動かないのでボツにしたもの==
5/12 22:00-01:00 6:00-7:00
5/13 21:00-0:00 ボツだったけど、「テンプレート関数プラグイン」の読み込みはうまく行った。この過程で、smartyの「plugins」フォルダの中も調査した。自分で作った「テンプレート関数プラグイン」が動くこともわかった。役立ちそう。自『AppHtmlUtil』を「テンプレート関数プラグイン」にしたらsmartyから使えそう。というアイデアが浮かんだ。smartyの「plugins」フォルダのfunction.html_options.phpなんかを参考にして。・・・smartyのもののほうがよさそうなら『AppHtmlUtil』から乗り換えことも考えよう。
5/15 22:00-22:30 {{clause3ope arg1="`$o.c_elements_idx == '0'`" arg2='' arg3='Management '}}にしてみたが、arg1は解釈されずに"`$o.c_elements_idx == '0'`"が、そのままわたってきた。やっぱりだめみたい。