商品登録フォームに新しい項目を増やす[発送日目安を2つにわけて使う]

例えば、価格1000円の後に「/枚」や「/ダース」等々をつけたいということ。
comment2等のカラムが使われていないようですので、それをつけようかな~と思ったのですが、こういう単位って多分あっても5つぐらいではと思い直す。

1600個ぐらいある商品の一つ一つに、「/枚」だとか書き続けて、それが途中(1枚あたり)に変更させたいとかいうことがあったらどうしよう!!

そんな不安にかられたので、今のところ使う予定のない「発送日目安(arrDELIVERYDATE)」を使うことにした。

ただし、このarrDELIVERYDATEあとから使うことになったらやっかいだな。と思ったので、ID番号が特定の数字未満なら「価格の単位」に使い、以上なら「発送日目安」に使うという仕組みにしてみる。

まず、product.tplに「価格の単位」を追加する。この値はcomment2に入るようにした。
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<tr>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<td bgcolor=”#f2f1ec” width=”160″>価格単位</td>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<td bgcolor=”#ffffff” width=”557″>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<span><!–{$arrErr.deliv_date_id}–></span>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<select name=”comment2” style=”<!–{$arrErr.deliv_date_id|sfGetErrorColor}–>”>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<option value=””>選択してください</option>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<!–{html_options options=$arrDELIVERYDATE1 selected=$arrForm.comment2}–>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ</select>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ</td>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ</tr>

発送日目安は以下のようにちょっと変える

<option value=””>選択してください</option>
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ<!–{html_options options=$arrDELIVERYDATE2 selected=$arrForm.deliv_date_id}–>

これにあわせて確認画面confirm.tplも変更させる。

あとは、これらを作り出すプログラムを変更すればよい。せっかくなので拡張のためのphpを使うことにした。

LC_Page_Admin_Products_Product_Ex.php

ツꀀツꀀツꀀ function init() {
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ parent::init();
ツꀀツꀀツꀀ ツꀀ/* 以下t追加*/
ツꀀツꀀツꀀ ツꀀ$masterData = new SC_DB_MasterData_Ex();
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $this->arrDELIVERYDATE1 = $masterData->getMasterData1(“mtb_delivery_date”,0);
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $this->arrDELIVERYDATE2 = $masterData->getMasterData1(“mtb_delivery_date”,1);
ツꀀツꀀツꀀ ツꀀ
ツꀀツꀀツꀀ }

こうやって書くと、parentで作られてる$mastaeDataに干渉することなく(追加されるっぽいね)、値が追加できる。すごいなー。

SC_DB_MasterData_Ex.php

function getMasterData1($name, $sorl = “0”, $no = “10” ,$columns = array()) {

ツꀀツꀀツꀀツꀀツꀀ $data = parent::getMasterData($name, $columns);
ツꀀツꀀ
ツꀀ ツꀀ foreach($data as $key => $val){
ツꀀ ツꀀ ツꀀif($sorl == 0){
ツꀀ ツꀀ ツꀀツꀀif($key < $no){
ツꀀ ツꀀ ツꀀツꀀツꀀ$result[$key]=$val;
ツꀀ ツꀀ ツꀀツꀀ}
ツꀀ ツꀀ ツꀀ}else{
ツꀀ ツꀀ ツꀀツꀀif($key >= $no){
ツꀀ ツꀀ ツꀀツꀀツꀀ$result[$key]=$val;
ツꀀ ツꀀ ツꀀツꀀ}
ツꀀ ツꀀ ツꀀ}
ツꀀ ツꀀ }
ツꀀツꀀツꀀツꀀツꀀ return $result;
ツꀀ }

つまり、$noの数を規準に、$sorlが1なら以上をキーにする配列を作り、$sorlが0なら未満をキーにする配列を作るというような感じ。

2つ使用しか考えてないため、3つ分割使用が必要になったら、また考える・・・・・・。
3つ分割使用を吸収するものを考えたら、何パターンかで使えそうだけども。とりあえず、あんまり増やしたくないなぁ・・・・・・。

まぁ、こうやって項目を増やすと、CSV登録のときのことを考えねばならなくなるだろう。
それは、また今度。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です