質問編集履歴

4

SC_Product_Ex内のlfGetProductsClass定義部を追記しました。

2018/05/08 05:12

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -226,6 +226,40 @@
226
226
 
227
227
 
228
228
 
229
+ 現在のSC_Product_Ex.phpの中身は下記の通りです。
230
+
231
+ ```php
232
+
233
+ require_once CLASS_REALDIR . 'SC_Product.php';
234
+
235
+
236
+
237
+ class SC_Product_Ex extends SC_Product {
238
+
239
+
240
+
241
+ /* 商品規格情報の取得 */
242
+
243
+ function lfGetProductsClass($product_id) {
244
+
245
+ $objProduct = new SC_Product_Ex();
246
+
247
+ return $objProduct->getProductsClassFullByProductId($product_id);
248
+
249
+ }
250
+
251
+
252
+
253
+ }
254
+
255
+
256
+
257
+ ```
258
+
259
+
260
+
261
+
262
+
229
263
  結果:
230
264
 
231
265
  ![結果](5830427c5b2860a286449982b54340b5.png)

3

一部、記載内容の追加と修正を行いました

2018/05/08 05:12

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -8,232 +8,230 @@
8
8
 
9
9
 
10
10
 
11
+ ・各商品には規格の一つとして「延長保証」が含まれています。
12
+
13
+ ・各商品の[商品詳細画面]については、規格として延長保証に関する情報を表示することができている状態です。(画像を参照)
14
+
15
+
16
+
17
+ ①商品詳細画面
18
+
19
+ ![商品詳細画面](e386a1aa773b7142aa68bf379c380cb8.png)
20
+
21
+
22
+
23
+ 編集した内容に関しては以下となります。
24
+
25
+ (編集もしくは追加した行は★マーク部となります)
26
+
27
+
28
+
29
+ /path/to/data/class/pages/products/LC_Page_Products_Detail.php
30
+
31
+ ```php
32
+
33
+ class LC_Page_Products_Detail extends LC_Page_Ex {
34
+
35
+ function action(){
36
+
37
+ ...中略...
38
+
39
+ // 追加項目(商品規格情報の取得)
40
+
41
+ $this->arrProductsClassList = $this->lfGetProductsClass($product_id);     ★
42
+
43
+ ...中略...
44
+
45
+ }
46
+
47
+ }
48
+
49
+ ```
50
+
51
+
52
+
53
+ /path/to/data/Smarty/templates/default/products/detail.tpl
54
+
55
+ ```smarty
56
+
57
+ <div id="undercolumn">
58
+
59
+ <form name="form1" id="form1" method="post" action="?">
60
+
61
+ <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
62
+
63
+ <div id="detailarea" class="clearfix">
64
+
65
+ <div id="detailphotobloc">
66
+
67
+ ...中略...
68
+
69
+ <!--{if $tpl_classcat_find1}-->
70
+
71
+ <div class="classlist">
72
+
73
+ <!--▼規格1-->
74
+
75
+ <h2>延長保証</h2>
76
+
77
+ <!--{foreach from=$arrProductsClassList item="kikaku1" key="key"}-->    ★
78
+
79
+ <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label>     ★
80
+
81
+ <!--{$kikaku1.price02|number_format}-->円    ★
82
+
83
+ <!--{/foreach}-->    ★
84
+
85
+ <!--▲規格1-->
86
+
87
+ ...中略...
88
+
89
+ </div>
90
+
91
+ </div>
92
+
93
+ </form>
94
+
95
+ </div>
96
+
97
+
98
+
99
+ ```
100
+
101
+
102
+
11
103
  課題:
12
104
 
13
105
 
14
106
 
15
- ・各商品には規格の一つとして「延長保証」が含まれています。
16
-
17
- ・各商品の[商品詳細画面]については、規格として延長保証に関する情報を表示することができてる状態です。(画像を参照)
107
+ 上記のようなラジオボタンと「商品規格」情報を [商品一覧画面] でも表示させたですが、
18
-
19
-
20
-
21
- ①商品詳細画面
108
+
22
-
23
- ![商品詳細画面](e386a1aa773b7142aa68bf379c380cb8.png)
24
-
25
-
26
-
27
- 編集した内容に関しては以下となり
109
+ 上の二つのファイルに倣って編集したのですが、ラジオボタンが表示されせん
28
-
29
- (編集もしくは追加した行は★マーク部となります)
110
+
30
-
31
-
32
-
111
+
112
+
33
- /path/to/data/class/pages/products/LC_Page_Products_Detail.php
113
+ /path/to/data/class/pages/products/LC_Page_Products_List.php
34
-
35
- ```php
114
+
36
-
37
- class LC_Page_Products_Detail extends LC_Page_Ex {
38
-
39
- function action(){
40
-
41
- ...中略...
42
-
43
- // 追加項目(商品規格情報の取得)
44
-
45
- $this->arrProductsClassList = $this->lfGetProductsClass($product_id);     ★
115
+ 内には、...Detail.php と同様に lfGetProductsClass() は定義してあるのですが、
46
-
116
+
47
- ...中略...
117
+ 以下のようなエラーがEC-CUBEエラーログ上に出力されます。
48
-
49
- }
118
+
50
-
51
- }
119
+
52
-
120
+
53
- ```
121
+ ```
54
-
55
-
56
-
122
+
57
- /path/to/data/Smarty/templates/default/products/detail.tpl
123
+ Fatal error(E_ERROR): Call to undefined method SC_Product_Ex::lfGetProductsClass() on [/var/www/html/data/class/pages/products/LC_Page_Products_List.php(273)] from ::1
124
+
125
+ customer_id = 1
126
+
127
+ ```
128
+
129
+
130
+
131
+
132
+
133
+ 原因及び解決策をご教示いただける方、お願いします!!
134
+
135
+ 見よう見まねで編集していたため、処理の流れなども含めて教えていただけると幸いです。
136
+
137
+
138
+
139
+
140
+
141
+ ********
142
+
143
+ 追記
144
+
145
+
146
+
147
+ SC_Product_Exではなく、
148
+
149
+ ・LC_Page_Products_Detail.php
150
+
151
+ ・LC_Page_Products_List.php
152
+
153
+ に lfGetProductsClass() を追記しておりました。
154
+
155
+ _Detail.php の場合は以上は無かったのですが、同じコードを _List.php 内に記載したらエラーとなってしまった状態です。
156
+
157
+
158
+
159
+ また、lfGetProductsClass() を SC_Product_Ex に記載し直し、以下のように
160
+
161
+ list.tpl 内に @var_dump を設置しましたが、結果は下の画像の通りです。
162
+
163
+
58
164
 
59
165
  ```smarty
60
166
 
61
- <div id="undercolumn">
62
-
63
- <form name="form1" id="form1" method="post" action="?">
64
-
65
- <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
66
-
67
- <div id="detailarea" class="clearfix">
68
-
69
- <div id="detailphotobloc">
70
-
71
- ...中略...
72
-
73
- <!--{if $tpl_classcat_find1}-->
74
-
75
- <div class="classlist">
76
-
77
- <!--▼規格1-->
78
-
79
- <h2>延長保証</h2>
80
-
81
- <!--{foreach from=$arrProductsClassList item="kikaku1" key="key"}-->    ★
82
-
83
- <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label>     ★
84
-
85
- <!--{$kikaku1.price02|number_format}-->円    ★
86
-
87
- <!--{/foreach}-->    ★
88
-
89
- <!--▲規格1-->
90
-
91
- ...中略...
92
-
93
- </div>
94
-
95
- </div>
96
-
97
- </form>
98
-
99
- </div>
100
-
101
-
102
-
103
- ```
104
-
105
-
106
-
107
-
108
-
109
- 上記のようなラジオボタンと「商品規格」の情報を [商品一覧画面] でも表示させたいのですが、
110
-
111
- 上の二つのファイルに倣って編集したのですが、ラジオボタンが表示されません。
112
-
113
-
114
-
115
- /path/to/data/class/pages/products/LC_Page_Products_List.php
116
-
117
- 内には、...Detail.php と同様に lfGetProductsClass() は定義してあるのですが、
118
-
119
- 以下のようなエラーがEC-CUBEエラーログ上に出力されます。
120
-
121
-
122
-
123
- ```
124
-
125
- Fatal error(E_ERROR): Call to undefined method SC_Product_Ex::lfGetProductsClass() on [/var/www/html/data/class/pages/products/LC_Page_Products_List.php(273)] from ::1
126
-
127
- customer_id = 1
128
-
129
- ```
130
-
131
-
132
-
133
-
134
-
135
- 原因及び解決策をご教示いただける方、お願いします!!
136
-
137
- 見よう見まねで編集していたため、処理の流れなども含めて教えていただけると幸いです。
167
+ <!--{if $tpl_classcat_find1[$id]}-->
168
+
169
+ $tpl_classcat_find1[$id]=<!--{$tpl_classcat_find1[$id]|@var_dump}-->
170
+
171
+ <div class="classlist">
172
+
173
+ <dl class="size01 clearfix">
174
+
175
+ <!--▼規格1-->
176
+
177
+ <h2>延長保証</h2>
178
+
179
+ $arrProductsClassList=<!--{$arrProductsClassList|@var_dump}-->
180
+
181
+ <!--{foreach from=$arrProductsClassList item="kikaku1" key="key"}-->
182
+
183
+ <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label>
184
+
185
+ <!--{$kikaku1.price02|number_format}-->
186
+
187
+ <!--{/foreach}-->
188
+
189
+ <!--▲規格1-->
190
+
191
+ </dl>
192
+
193
+ <!--{if $tpl_classcat_find2[$id]}-->
194
+
195
+ <dl class="size02 clearfix">
196
+
197
+ <!--▼規格2-->
198
+
199
+ <dt><!--{$tpl_class_name2[$id]|h}-->:</dt>
200
+
201
+ <dd>
202
+
203
+ <select name="classcategory_id2" style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->">
204
+
205
+ </select>
206
+
207
+ <!--{if $arrErr.classcategory_id2 != ""}-->
208
+
209
+ <p class="attention">※ <!--{$tpl_class_name2[$id]}-->を入力して下さい。</p>
210
+
211
+ <!--{/if}-->
212
+
213
+ </dd>
214
+
215
+ <!--▲規格2-->
216
+
217
+ </dl>
218
+
219
+ <!--{/if}-->
220
+
221
+ </div>
222
+
223
+ <!--{/if}-->
224
+
225
+ ```
226
+
227
+
228
+
229
+ 結果:
230
+
231
+ ![結果](5830427c5b2860a286449982b54340b5.png)
138
232
 
139
233
 
140
234
 
141
235
 
142
236
 
143
237
  ********
144
-
145
- 追記
146
-
147
-
148
-
149
- SC_Product_Exではなく、
150
-
151
- ・LC_Page_Products_Detail.php
152
-
153
- ・LC_Page_Products_List.php
154
-
155
- に lfGetProductsClass() を追記しておりました。
156
-
157
- _Detail.php の場合は以上は無かったのですが、同じコードを _List.php 内に記載したらエラーとなってしまった状態です。
158
-
159
-
160
-
161
- また、lfGetProductsClass() を SC_Product_Ex に記載し直し、以下のように
162
-
163
- list.tpl 内に @var_dump を設置しましたが、結果は下の画像の通りです。
164
-
165
-
166
-
167
- ```smarty
168
-
169
- <!--{if $tpl_classcat_find1[$id]}-->
170
-
171
- $tpl_classcat_find1[$id]=<!--{$tpl_classcat_find1[$id]|@var_dump}-->
172
-
173
- <div class="classlist">
174
-
175
- <dl class="size01 clearfix">
176
-
177
- <!--▼規格1-->
178
-
179
- <h2>延長保証</h2>
180
-
181
- $arrProductsClassList=<!--{$arrProductsClassList|@var_dump}-->
182
-
183
- <!--{foreach from=$arrProductsClassList item="kikaku1" key="key"}-->
184
-
185
- <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label>
186
-
187
- <!--{$kikaku1.price02|number_format}-->円
188
-
189
- <!--{/foreach}-->
190
-
191
- <!--▲規格1-->
192
-
193
- </dl>
194
-
195
- <!--{if $tpl_classcat_find2[$id]}-->
196
-
197
- <dl class="size02 clearfix">
198
-
199
- <!--▼規格2-->
200
-
201
- <dt><!--{$tpl_class_name2[$id]|h}-->:</dt>
202
-
203
- <dd>
204
-
205
- <select name="classcategory_id2" style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->">
206
-
207
- </select>
208
-
209
- <!--{if $arrErr.classcategory_id2 != ""}-->
210
-
211
- <p class="attention">※ <!--{$tpl_class_name2[$id]}-->を入力して下さい。</p>
212
-
213
- <!--{/if}-->
214
-
215
- </dd>
216
-
217
- <!--▲規格2-->
218
-
219
- </dl>
220
-
221
- <!--{/if}-->
222
-
223
- </div>
224
-
225
- <!--{/if}-->
226
-
227
- ```
228
-
229
-
230
-
231
- 結果:
232
-
233
- ![結果](5830427c5b2860a286449982b54340b5.png)
234
-
235
-
236
-
237
-
238
-
239
- ********

2

@var_dumpの結果などを追記しました

2018/05/08 03:58

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,105 @@
135
135
  原因及び解決策をご教示いただける方、お願いします!!
136
136
 
137
137
  見よう見まねで編集していたため、処理の流れなども含めて教えていただけると幸いです。
138
+
139
+
140
+
141
+
142
+
143
+ ********
144
+
145
+ 追記
146
+
147
+
148
+
149
+ SC_Product_Exではなく、
150
+
151
+ ・LC_Page_Products_Detail.php
152
+
153
+ ・LC_Page_Products_List.php
154
+
155
+ に lfGetProductsClass() を追記しておりました。
156
+
157
+ _Detail.php の場合は以上は無かったのですが、同じコードを _List.php 内に記載したらエラーとなってしまった状態です。
158
+
159
+
160
+
161
+ また、lfGetProductsClass() を SC_Product_Ex に記載し直し、以下のように
162
+
163
+ list.tpl 内に @var_dump を設置しましたが、結果は下の画像の通りです。
164
+
165
+
166
+
167
+ ```smarty
168
+
169
+ <!--{if $tpl_classcat_find1[$id]}-->
170
+
171
+ $tpl_classcat_find1[$id]=<!--{$tpl_classcat_find1[$id]|@var_dump}-->
172
+
173
+ <div class="classlist">
174
+
175
+ <dl class="size01 clearfix">
176
+
177
+ <!--▼規格1-->
178
+
179
+ <h2>延長保証</h2>
180
+
181
+ $arrProductsClassList=<!--{$arrProductsClassList|@var_dump}-->
182
+
183
+ <!--{foreach from=$arrProductsClassList item="kikaku1" key="key"}-->
184
+
185
+ <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label>
186
+
187
+ <!--{$kikaku1.price02|number_format}-->円
188
+
189
+ <!--{/foreach}-->
190
+
191
+ <!--▲規格1-->
192
+
193
+ </dl>
194
+
195
+ <!--{if $tpl_classcat_find2[$id]}-->
196
+
197
+ <dl class="size02 clearfix">
198
+
199
+ <!--▼規格2-->
200
+
201
+ <dt><!--{$tpl_class_name2[$id]|h}-->:</dt>
202
+
203
+ <dd>
204
+
205
+ <select name="classcategory_id2" style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->">
206
+
207
+ </select>
208
+
209
+ <!--{if $arrErr.classcategory_id2 != ""}-->
210
+
211
+ <p class="attention">※ <!--{$tpl_class_name2[$id]}-->を入力して下さい。</p>
212
+
213
+ <!--{/if}-->
214
+
215
+ </dd>
216
+
217
+ <!--▲規格2-->
218
+
219
+ </dl>
220
+
221
+ <!--{/if}-->
222
+
223
+ </div>
224
+
225
+ <!--{/if}-->
226
+
227
+ ```
228
+
229
+
230
+
231
+ 結果:
232
+
233
+ ![結果](5830427c5b2860a286449982b54340b5.png)
234
+
235
+
236
+
237
+
238
+
239
+ ********

1

エラー内容の追記

2018/05/08 03:51

投稿

zvub1123
zvub1123

スコア230

test CHANGED
File without changes
test CHANGED
@@ -112,6 +112,22 @@
112
112
 
113
113
 
114
114
 
115
+ /path/to/data/class/pages/products/LC_Page_Products_List.php
116
+
117
+ 内には、...Detail.php と同様に lfGetProductsClass() は定義してあるのですが、
118
+
119
+ 以下のようなエラーがEC-CUBEエラーログ上に出力されます。
120
+
121
+
122
+
123
+ ```
124
+
125
+ Fatal error(E_ERROR): Call to undefined method SC_Product_Ex::lfGetProductsClass() on [/var/www/html/data/class/pages/products/LC_Page_Products_List.php(273)] from ::1
126
+
127
+ customer_id = 1
128
+
129
+ ```
130
+
115
131
 
116
132
 
117
133