TOOL更新_ver0.1の「使用できる項目管理」を今作っているver0.1Zdに置き換えた。
TOOL更新_ver0.1の「使用できる項目管理」を今作っているver0.1Zdに置き換えた。
これで管理者側の自動生成◎自動作成するのに必要な機能は全部動いたことになる。(<=と思ったら「初期データアップロード管理」も置き換えないといけないことに気づいた。。。。)「ログイン情報管理」になかったものは、ファイルアップロード、ファイルダウンロード、パスワード自動作成、シーケンス番号先取り、など。その過程でダメな点が出たりしたのでいろいろ修正した。・・・この先ユーザ側(登録時の確認画面がある。登録時管理者と顧客にメールを出す。基本プログラムが2つに分けてある。などが違う)も同じように作って。・・・それを元に雛型を作り。・・・ver0.1Zdをつくるのだ。・・・(省略)。
■AppSmartyPlugin.php 修正
内容:ラジオボタン、プルダウンリストともに「デフォルト設定(英字)」を設定できるようにした。・・・こんな感じで$paramsに追加できるので便利。
function smarty_function_kaz_html_radio($params, &$smarty) と function smarty_function_kaz_html_select($params, &$smarty) の 2メソッドともに <<追加>> * - dfltEng デフォルト設定(英字)。設定しない場合""を指定する。 ・・・ if( isset($params['dfltEng']) == false){ $params['dfltEng'] = ''; // デフォルト英字指定なし } <<変更前>> $params['dflt'] <<変更後>> $params['idx']=='0'?$params['dflt']:$params['dfltEng']
■ControllerAdminBase.php 修正
内容:
・「一番最初のソートタイプ(A:ASC D:DESC)」を"A"固定でPGMしてたのを”A”,”D”選べるようにした。
・「viewに使用する名前」のメソッド名が勘違いされるのでわかりやすく変えた。
・登録時に、PK先取りや、パスワード先取りするメソッドを入れた。
・アップロード時にエラーになったとき。もとの名前に戻すメソッドを入れた。
<<追加:ControllerDbBase.phpから移動してきた>> protected $_mode = ''; // モード protected $_modeBk = ''; // モードバックアップ protected $_fstSrtItem = ''; // 一番最初のソートITEM名 <<追加>> protected $_fstSrtType = ''; // 一番最初のソートタイプ(A:ASC D:DESC) <<追加>> // 一番最初のソートタイプ(A:ASC D:DESC)を取得する // 例 return 'A'; abstract protected function _getFstSrtType(); <<修正前>> // viewに使用するテーブル名 // 例 return 'logininfo'; abstract protected function _getTblName(); // viewに使用するフォルダ名 // 例 return 'admin/logininfo'; abstract protected function _getFolderName(); <<修正後>> // viewに使用する名前(先頭の共通部分) // 例 return 'logininfo'; abstract protected function _getViewHeadName(); // viewに使用するフォルダ名 // 例 return 'admin/logininfo'; abstract protected function _getViewFolderName(); <<修正前:4箇所あり>> $this->_o['sort_order'] = 'A'; <<修正後>> $this->_o['sort_order'] = $this->_fstSrtType; <<修正前:8箇所あり>> $this->_getFolderName() <<修正後>> $this->_getViewFolderName() <<修正前:4箇所あり>> $this->_getTblName <<修正後>> $this->_getViewHeadName() <<修正前>> // 登録 protected function _insActionSub() { ・・・ } <<修正後>> // 登録 protected function _insActionSub() { ・・・ // 登録時に、PK先取りや、パスワード先取り処理 $this->_insActionSubSeqPass(); } <<追加>> // 登録時に、PK先取りや、パスワード先取り処理 // 登録時に、PK先取りや、パスワード先取りするときは、継承先でオーバーライドしてください。 protected function _insActionSubSeqPass() { // 登録時に、PK先取りや、パスワード先取りがあるとき処理を入れる。 } ☆使用例:継承先のコーディング // 登録時に、PK先取りや、パスワード先取り処理 // 登録時に、PK先取りや、パスワード先取りするときは、継承先でオーバーライドしてください。 protected function _insActionSubSeqPass() { // 登録時に、PK先取りや、パスワード先取りがあるとき処理を入れる。 if ($this->_modeBk == 'ins') { $this->_o['item09'] = AppDbFunctions::makePassword($this->_db, 8, 't_item', 'item09'); } } <<修正前>> // 変更 protected function _updActionSub() { switch($this->_mode) { case 'upd': // 変更 break; case 'upd_do': // 変更の実行 $this->_err = $this->_validCheck($this->_o, $this->_mode); if(AppCheckUtil::chkError($this->_err)) { // エラーあり // 入力フォームを表示するmodeにする $this->_mode = 'upd'; } break; } <<修正後>> // 変更 protected function _updActionSub() { switch($this->_mode) { case 'upd': // 変更 break; case 'upd_do': // 変更の実行 $this->_err = $this->_validCheck($this->_o, $this->_mode); if(AppCheckUtil::chkError($this->_err)) { // エラーあり // 入力フォームを表示するmodeにする $this->_mode = 'upd'; // 更新エラー時に名前を戻す処理 $this->_updActionSubPhoto(); } break; } <<追加>> // 更新エラー時に名前を戻す処理 // アップロード処理のとき、継承先でオーバーライドしてください。 protected function _updActionSubPhoto() { // アップロードがあるとき処理を入れる。 } ☆使用例:継承先のコーディング // 更新エラー時に名前を戻す処理 // アップロード処理のとき、継承先でオーバーライドしてください。 protected function _updActionSubPhoto() { // のアップロードがあるとき処理を入れる。 $this->_o['item49'] = $this->_o['old_item49']; $this->_o['item51'] = $this->_o['old_item51']; $this->_o['item50'] = $this->_o['old_item50']; $this->_o['item52'] = $this->_o['old_item52']; }
■ControllerDbBase.php 修正
内容:ControllerAdminBase.phpに「$_fstSrtItem」のgetterメソッドのabstractがあるのでそちらに移動した。そのほかもControllerAdminBase.phpで使っているのでそちらに移動した。
<<ControllerAdminBase.phpへ移動して、削除する。>> protected $_mode = ''; // モード protected $_modeBk = ''; // モードバックアップ protected $_fstSrtItem = ''; // 一番最初のソートITEM名
■LogininfoAController.php 修正
内容:親クラスで「viewに使用する名前」のメソッド名を変えたので。
<<追加>> // 一番最初のソートタイプ(A:ASC D:DESC)を取得する protected function _getFstSrtType() { return 'A'; } <<修正前>> // viewに使用するテーブル名 // 例 return 'logininfo'; protected function _getTblName() { return 'logininfo'; } // viewに使用するフォルダ名 // 例 return 'logininfo'; protected function _getFolderName() { return 'admin/logininfo'; } <<修正後>> // viewに使用する名前(先頭の共通部分) // 例 return 'logininfo'; protected function _getViewHeadName() { return 'logininfo'; } // viewに使用するフォルダ名 // 例 return 'logininfo'; protected function _getViewFolderName() { return 'admin/logininfo'; }
■DbManager.php 修正
内容:画面入力なしの項目がある場合”?”が変換されずに残ってしまう(SQLエラー発生)。修正した。
<<修正前>> protected function _sqlAndValQuote(&$sql, &$ary=array()) { ・・・ if ($sqlValue == "?") { // ”?”の場合 if (isset($ary[$i])) { // 値がある場合 $sqls[$key] = $this->_db->quote($ary[$i]); // 値埋め込む。 $i++; } <<修正後>> protected function _sqlAndValQuote(&$sql, &$ary=array()) { ・・・ if ($sqlValue == "?") { // ”?”の場合 $sqls[$key] = $this->_db->quote($ary[$i]); // 値埋め込む。 $i++;
8/7 13:00-18:00
8/8 13:00-18:00 22:00-04:00
8/9 9:00-12:00 過去の日記を書き換えた。自WEBの「5.次期バージョン開発中 」の更新日も変えた。
■DBマネージャクラス(シングルトン)を作った。(http://d.hatena.ne.jp/kazpgm/20100309/1268152282)に当修正を反映した。
■viewをphp(ver0.1)からsmarty(次期ver)へ置き換えた。(置き換え手法)(http://d.hatena.ne.jp/kazpgm/20100519/1274286130)に当修正を反映した。
■ベースになるサンプルを作成中(http://d.hatena.ne.jp/kazpgm/20100121/1264095498)に当修正を反映した。