バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (19 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 24
zerostaff もっと...

サイト内検索

質問 > その他 > 入力項目の追加に関するアドバイスをお願いします。

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ishibo
投稿日時: 2009/4/22 23:09
対応状況: −−−
常連
登録日: 2008/5/24
居住地: 北海道
投稿: 33
入力項目の追加に関するアドバイスをお願いします。
現在フロント機能・管理機能において「会社名」・「会社名(カナ)」に関する項目を追加中です。
実際に一通り表示及びデータの引継ぎに関してはある程度問題なく動作していますが、2点ほどお伺いしたく質問させて頂きます。

?nonmember_input.tplにおいて該当箇所に追加した項目の入力欄を追加しました。
通常の発送先情報などの入力に関してはなんの問題もないのですが、「配送先を指定」欄にてチェックを入れるまで入力項目が未表示?入力不可となっているのに対し、追加した項目は入力できる状態になってしまいます。
特になにもせず「配送先を指定」以外の通常の発送先情報を入力し確認ボタンを押せばそのままエラーもなく購入完了まで進めますが、この入力不可に関して他の項目と統一にするにはどこを弄れば良いのでしょうか?

ちなみに、nonmember_input.tpl では、以下を修正

※MySQL内 dtb_order、dtb_order_tempで、会社名→order_cname,deliv_cname 会社名(カナ)→order_kcname,deliv_kcname とカラムを追加。

■通常発送のテーブル内に以下を追加
<tr>
<th>会社名</th>
<td>
<!--{assign var=key1 value="order_cname"}-->
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|escape}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="15" class="box120" />
</td>
</tr><tr>
<th>会社名(フリカナ)</th>
<td>
<!--{assign var=key1 value="order_kcname"}-->
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|escape}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="15" class="box120" />
</td>
</tr>

■「配送先を指定」テーブル内に以下を追加
<tr>
<th>会社名</th>
<td>
<!--{assign var=key1 value="deliv_cname"}-->
<span class="attention"><!--{$arrErr[$key1]}--></span>
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|escape}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="15" class="box120" />
</td>
</tr><tr>
<th>会社名(フリカナ)</th>
<td>
<!--{assign var=key1 value="deliv_kcname"}-->
<span class="attention"><!--{$arrErr[$key1]}--></span>
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|escape}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="15" class="box120" />
</td>
</tr>

■LC_Page_Shopping.php内のデストラクタ内の該当箇所にて以下を追加

// 別のお届け先チェック
if(isset($_POST['deliv_check']) && $_POST['deliv_check'] == "1") {
$objErr->doFunc(array("会社名", "deliv_cname"), array("EXIST_CHECK"));
$objErr->doFunc(array("会社名(カナ)", "deliv_kcname"), array("EXIST_CHECK"));

// 別のお届け先を指定していない場合、配送先に登録住所をコピーする。
if($arrData["deliv_check"] != "1") {
$sqlval['deliv_cname'] = $arrData['order_cname'];
$sqlval['deliv_kcname'] = $arrData['order_kcname'];

その他関連すると思われるファイルにて同様に関連する追加タグを追加しました。

?管理画面内において顧客情報・受注管理で追加項目そそれぞれ該当する箇所に追加し問題なく表示され内容を変更する事も可能となりましたが、顧客検索・受注検索で会社名を入力しても検索結果には全ての顧客・受注情報が表示されてしまいます。
これはどのファイルで修正を加えれば宜しいでしょうか?

なんか色々と弄っているうちに頭がゴチャゴチャしてきてしまい聞いてみようと書き込みさせて貰いました(汗)

なお、今回これらに関連してMySQLでは、dtb_customer,dtb_order,dtb_order_temp,dtb_other_delivにて関連するカラムを追加しており、そのたhoge/data/class/shopping/,hoge/data/class/admin/やhoge/Smarty/template/内の該当する.tplファイルや.phpファイルに修正を加えています。


最後に、些細なことで悩んでおります。
対象顧客が個人・法人である場合を想定し会社名等の項目を追加してみましたが、該当する項目を追加した際に該当する表示欄に「会社名:」と表示されるのは当然で、法人に対しては普通に表示され項目に見合った表示となりますが、個人顧客に対しては実際に必要のない項目となってしまいます。
カスタマイズ経験のある方にお伺いしたいのですが、この場合どうしていますでしょうか?

気にしなければそれまでですが、手をつけるとこんな些細なことが気になってしまい勝手に悩んでおります。
どなたかスパッとアドバイス頂ければ嬉しいです。

どうぞ、よろしくお願いします。

---------------------------------------
バージョン:2.3.4
PHP: 5.1.6
DB: MySQL 5.0.45
---------------------------------------

seasoft
投稿日時: 2009/4/22 23:24
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 入力項目の追加に関するアドバイスをお願いします。
引用:
?nonmember_input.tplにおいて該当箇所に追加した項目の入力欄を追加しました。
通常の発送先情報などの入力に関してはなんの問題もないのですが、「配送先を指定」欄にてチェックを入れるまで入力項目が未表示?入力不可となっているのに対し、追加した項目は入力できる状態になってしまいます。
特になにもせず「配送先を指定」以外の通常の発送先情報を入力し確認ボタンを押せばそのままエラーもなく購入完了まで進めますが、この入力不可に関して他の項目と統一にするにはどこを弄れば良いのでしょうか?

/html/user_data/packages/default/js/site.js 内の
fnCheckInputDeliv() では?

ざっとソース追跡した範囲ですので、外していたらゴメンなさい。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2009/4/22 23:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 入力項目の追加に関するアドバイスをお願いします。
引用:
対象顧客が個人・法人である場合を想定し会社名等の項目を追加してみましたが、該当する項目を追加した際に該当する表示欄に「会社名:」と表示されるのは当然で、法人に対しては普通に表示され項目に見合った表示となりますが、個人顧客に対しては実際に必要のない項目となってしまいます。
カスタマイズ経験のある方にお伺いしたいのですが、この場合どうしていますでしょうか?

どのような表示箇所にもよりますが、一般的には
<!--{if $xxx|strlen >= 1}-->会社名:<!--{$xxx|escape}--><!--{/if}-->
辺りでは? (動作未検証)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

ishibo
投稿日時: 2009/4/22 23:31
対応状況: −−−
常連
登録日: 2008/5/24
居住地: 北海道
投稿: 33
Re: 入力項目の追加に関するアドバイスをお願いします。
引用:

/html/user_data/packages/default/js/site.js 内の
fnCheckInputDeliv() では?


その通りでした(汗)

なんか小難しく考えすぎてJavaScriptまで気が回っていませんでした。
先ずは一つ解決できました。

ありがとうございます。
ishibo
投稿日時: 2009/4/23 1:57
対応状況: −−−
常連
登録日: 2008/5/24
居住地: 北海道
投稿: 33
Re: 入力項目の追加に関するアドバイスをお願いします。
引用:

どのような表示箇所にもよりますが、一般的には
<!--{if $xxx|strlen >= 1}-->会社名:<!--{$xxx|escape}--><!--{/if}-->
辺りでは? (動作未検証)


アドバイスありがとうございます。

hoge/data/Smarty/templates/***/shopping/confirm.tpl

内にて該当箇所のテーブルを、

<!--{if $arrData.deliv_cname|strlen >= 1}-->
<tr>
<th>会社名</th>
<td><!--{$arrData.deliv_cname|escape}--></td>
</tr>
<!--{/if}-->

と、

<!--{if $arrData.order_cname|strlen >= 1}-->
<tr>
<th>会社名</th>
<td><!--{$arrData.order_cname|escape}--></td>
</tr>
<!--{/if}-->

とする事で可能となりました。

本当にありがとうございます。

あとは…
管理画面内での検索結果の表示です。
頭をリセットして取り掛かろうと思います。

別件:
フォーラムでもこう言った追加項目について幾つか質問などの投稿があり、解決していないようですが完成後は載せた方が良いのでしょうか?
簡単にカスタマイズ出来る物でしたら別ですが、今回も簡単と言えば簡単で…ただ、弄る場所が多すぎるのでいかがなものかと…(悩)

でもこれって今回はお試し半分で弄って試してみましたが、標準機能に無い分最後まで責任も持てませんし当たらず触らずってとこでしょうか?
ishibo
投稿日時: 2009/4/23 4:35
対応状況: 解決済
常連
登録日: 2008/5/24
居住地: 北海道
投稿: 33
Re: 入力項目の追加に関するアドバイスをお願いします。
引用:

あとは…
管理画面内での検索結果の表示です。
頭をリセットして取り掛かろうと思います。


自己解決しました。

hoge/data/class/内の主だったファイルを見て周り、
adminフォルダ内のファイルとの関連性を辿って見た結果、 LC_Page_Admin_Customer.php の下辺りとSC_CustomerList.php の中身が意外と共通しているのに気づき追加項目に関しての検索結果に反映されるようになりました。

ただ…
受注管理での検索結果において名前のところに会社名も同時に表示できるのに対し、顧客管理での検索結果では会社名が表示されない悩みが増えてしまい、まだまだ調べる必要があります。

一つの事に対してファイルがバラバラで結構苦労するソースですね(汗)

seasoft
投稿日時: 2009/4/23 4:48
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 入力項目の追加に関するアドバイスをお願いします。
> 自己解決しました。

多分、?は自己解決できそうだなと思い、レスつけませんでした。
なるほど、SC 側に入っていましたか。それは確かに意外ですね。


> 受注管理での検索結果において名前のところに会社名も同時に表示できるのに対し、顧客管理での検索結果では会社名が表示されない悩みが増えてしまい、まだまだ調べる必要があります。

受注管理と同じ方法でできるとは限りませんが、さほど複雑ではない処理だとは思うので(ソース未確認)、該当箇所が特定できれば難なく解決に至れるとは思います。


> 一つの事に対してファイルがバラバラで結構苦労するソースですね(汗)

大規模なプログラムになると、共通部分は共有できるようにまとまっていたりするので、その辺りの法則が把握できるまではナカナカ辛いですね。しかも、オープンソースなので、様々な癖も混在しているし。
まぁ、慣れです(笑) ある意味、勉強になるソースですよ。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,915名です
総投稿数は110,010件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.