source: branches/version-2_5-dev/data/Smarty/templates/default/products/list.tpl @ 20337

Revision 20337, 16.9 KB checked in by nanasess, 10 years ago (diff)

#1026([フロント]商品:規格あり商品をカートに投入できない)

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-smarty-template; charset=UTF-8
Line 
1<!--{*
2 * This file is part of EC-CUBE
3 *
4 * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved.
5 *
6 * http://www.lockon.co.jp/
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21 *}-->
22<script type="text/javascript">//<![CDATA[
23// 規格2に選択肢を割り当てる。
24function fnSetClassCategories(form, classcat_id2_selected) {
25    sele1 = form.classcategory_id1;
26    sele2 = form.classcategory_id2;
27    product_id = form.product_id.value;
28
29    if (sele1) {
30        if (sele2) {
31            // 規格2の選択肢をクリア
32            count = sele2.options.length;
33            for(i = count; i >= 0; i--) {
34                sele2.options[i] = null;
35            }
36           
37            // 規格2に選択肢を割り当てる
38            classcats = productsClassCategories[product_id][sele1.value];
39            i = 0;
40            for (var classcat_id2_key in classcats) {
41                classcategory_id2 = classcats[classcat_id2_key].classcategory_id2;
42                sele2.options[i] = new Option(classcats[classcat_id2_key].name, classcategory_id2);
43                if (classcategory_id2 == classcat_id2_selected) {
44                    sele2.options[i].selected = true;
45                }
46                i++;
47            }
48        }
49        fnCheckStock(form);
50    }
51}
52// 並び順を変更
53function fnChangeOrderby(orderby) {
54    fnSetVal('orderby', orderby);
55    fnSetVal('pageno', 1);
56    fnSubmit();
57}
58// 表示件数を変更
59function fnChangeDispNumber(dispNumber) {
60    fnSetVal('disp_number', dispNumber);
61    fnSetVal('pageno', 1);
62    fnSubmit();
63}
64// カゴに入れる
65function fnInCart(productForm) {
66    var product_id = productForm["product_id"].value;
67    fnChangeAction("?#product" + product_id);
68    if (productForm["classcategory_id1"]) {
69        fnSetVal("classcategory_id1", productForm["classcategory_id1"].value);
70    }
71    if (productForm["classcategory_id2"]) {
72        fnSetVal("classcategory_id2", productForm["classcategory_id2"].value);
73    }
74    fnSetVal("quantity", productForm["quantity"].value);
75    fnSetVal("product_id", productForm["product_id"].value);
76    fnSetVal("product_class_id", productForm["product_class_id"].value);
77    fnSetVal("product_type", productForm["product_type"].value);
78    fnSubmit();
79}
80function fnCheckStock(form) {
81    product_id = form.product_id.value;
82    classcat_id1 = form.classcategory_id1.value;
83    classcat_id2 = form.classcategory_id2 ? form.classcategory_id2.value : '';
84    classcat2 = productsClassCategories[product_id][classcat_id1]['#' + classcat_id2];
85   
86    // 在庫(品切れ)
87    eleDefault = document.getElementById('cartbtn_default_' + product_id);
88    eleDynamic = document.getElementById('cartbtn_dynamic_' + product_id);
89    if (
90           classcat2
91        && classcat2.stock_find === false
92    ) {
93        eleDefault.style.display = 'none';
94        eleDynamic.innerHTML = '申し訳ございませんが、只今品切れ中です。';
95    } else {
96        eleDefault.style.display = '';
97        eleDynamic.style.display = 'none';
98        eleDynamic.innerHTML = '';
99    }
100   
101    // 販売価格
102    eleDefault = document.getElementById('price02_default_' + product_id);
103    eleDynamic = document.getElementById('price02_dynamic_' + product_id);
104    if (
105           classcat2
106        && typeof classcat2.price02 != 'undefined'
107        && String(classcat2.price02).length >= 1
108    ) {
109        eleDefault.style.display = 'none';
110        eleDynamic.innerHTML = classcat2.price02;
111    } else {
112        eleDefault.style.display = '';
113        eleDynamic.innerHTML = '';
114    }
115    // 商品規格
116    eleDynamic = document.getElementById('product_class_id' + product_id);
117    if (
118           classcat2
119        && typeof classcat2.product_class_id != 'undefined'
120        && String(classcat2.product_class_id).length >= 1
121    ) {
122        eleDynamic.value = classcat2.product_class_id;
123    } else {
124        eleDynamic.value = ''
125    }
126    // 商品種別
127    eleDynamic = document.getElementById('product_type' + product_id);
128    if (
129           classcat2
130        && typeof classcat2.product_type != 'undefined'
131        && String(classcat2.product_type).length >= 1
132    ) {
133        eleDynamic.value = classcat2.product_type;
134    } else {
135        eleDynamic.value = ''
136    }
137}
138//]]>
139</script>
140
141<!--▼CONTENTS-->
142<div id="undercolumn" class="product product_list">
143    <form name="form1" id="form1" method="get" action="?">
144        <input type="hidden" name="mode" value="<!--{$mode|h}-->" />
145        <!--{* ▼検索条件 *}-->
146        <input type="hidden" name="category_id" value="<!--{$arrSearchData.category_id|h}-->" />
147        <input type="hidden" name="maker_id" value="<!--{$arrSearchData.maker_id|h}-->" />
148        <input type="hidden" name="name" value="<!--{$arrSearchData.name|h}-->" />
149        <!--{* ▲検索条件 *}-->
150        <!--{* ▼ページナビ関連 *}-->
151        <input type="hidden" name="orderby" value="<!--{$orderby|h}-->" />
152        <input type="hidden" name="disp_number" value="<!--{$disp_number|h}-->" />
153        <input type="hidden" name="pageno" value="<!--{$tpl_pageno|h}-->" />
154        <!--{* ▲ページナビ関連 *}-->
155        <!--{* ▼注文関連 *}-->
156        <input type="hidden" name="product_id" value="" />
157        <input type="hidden" name="classcategory_id1" value="" />
158        <input type="hidden" name="classcategory_id2" value="" />
159        <input type="hidden" name="product_class_id" value="" />
160        <input type="hidden" name="product_type" value="" />
161        <input type="hidden" name="quantity" value="" />
162        <!--{* ▲注文関連 *}-->
163        <input type="hidden" name="rnd" value="<!--{$tpl_rnd|h}-->" />
164    </form>
165   
166    <!--★タイトル★-->
167    <h2 class="title"><!--{$tpl_subtitle|h}--></h2>
168   
169    <!--▼検索条件-->
170    <!--{if $tpl_subtitle == "検索結果"}-->
171        <ul class="pagecondarea">
172            <li><strong>商品カテゴリ:</strong><!--{$arrSearch.category|h}--></li>
173        <!--{if $arrSearch.maker|strlen >= 1}--><li><strong>メーカー:</strong><!--{$arrSearch.maker|h}--></li><!--{/if}-->
174            <li><strong>商品名:</strong><!--{$arrSearch.name|h}--></li>
175        </ul>
176    <!--{/if}-->
177    <!--▲検索条件-->
178
179    <!--▼ページナビ(本文)-->
180    <!--{capture name=page_navi_body}-->
181        <div class="pagenumberarea clearfix">
182            <div class="change">
183                <!--{if $orderby != 'price'}-->
184                    <a href="javascript:fnChangeOrderby('price');">価格順</a>
185                <!--{else}-->
186                    <strong>価格順</strong>
187                <!--{/if}-->&nbsp;
188                <!--{if $orderby != "date"}-->
189                        <a href="javascript:fnChangeOrderby('date');">新着順</a>
190                <!--{else}-->
191                    <strong>新着順</strong>
192                <!--{/if}-->
193                表示件数
194                <select name="disp_number" onchange="javascript:fnChangeDispNumber(this.value);">
195                    <!--{foreach from=$arrPRODUCTLISTMAX item="dispnum" key="num"}-->
196                        <!--{if $num == $disp_number}-->
197                        <option value="<!--{$num}-->" selected="selected" ><!--{$dispnum}--></option>
198                        <!--{else}-->
199                        <option value="<!--{$num}-->" ><!--{$dispnum}--></option>
200                        <!--{/if}-->
201                    <!--{/foreach}-->
202                </select>
203            </div>
204            <div class="navi"><!--{$tpl_strnavi}--></div>
205        </div>
206    <!--{/capture}-->
207    <!--▲ページナビ(本文)-->
208
209    <!--{foreach from=$arrProducts item=arrProduct name=arrProducts}-->
210
211        <!--{if $smarty.foreach.arrProducts.first}-->
212            <!--▼件数-->
213            <div>
214                <span class="attention"><!--{$tpl_linemax}-->件</span>の商品がございます。
215            </div>
216            <!--▲件数-->
217           
218            <!--▼ページナビ(上部)-->
219            <form name="page_navi_top" id="page_navi_top" action="?">
220                <!--{if $tpl_linemax > 0}--><!--{$smarty.capture.page_navi_body|smarty:nodefaults}--><!--{/if}-->
221            </form>
222            <!--▲ページナビ(上部)-->
223        <!--{/if}-->
224
225        <!--{assign var=id value=$arrProduct.product_id}-->
226        <!--{assign var=arrErr value=$arrProduct.arrErr}-->
227        <!--▼商品-->
228        <div class="list_area clearfix">
229        <a name="product<!--{$id|h}-->"></a>
230            <div class="listphoto">
231                <!--★画像★-->
232                <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->" class="over"><!--商品写真--><img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH|sfTrimURL}-->/<!--{$arrProduct.main_list_image|sfNoImageMainList|h}-->" alt="<!--{$arrProduct.name|h}-->" class="picture" /></a>
233            </div>
234
235            <div class="listrightbloc">
236                <!--▼商品ステータス-->
237                <!--{if count($productStatus[$id]) > 0}-->
238                    <ul class="status_icon clearfix">
239                        <!--{foreach from=$productStatus[$id] item=status}-->
240                            <li>
241                                <img src="<!--{$TPL_URLPATH}--><!--{$arrSTATUS_IMAGE[$status]}-->" width="60" height="17" alt="<!--{$arrSTATUS[$status]}-->"/>
242                            </li>
243                        <!--{/foreach}-->
244                    </ul>
245                <!--{/if}-->
246                <!--▲商品ステータス-->
247
248                <!--★商品名★-->
249                <h3>
250                    <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->" name="product<!--{$arrProduct.product_id}-->"><!--{$arrProduct.name|h}--></a>
251                </h3>
252                <!--★価格★-->
253                    <div class="pricebox sale_price">
254                        <!--{$smarty.const.SALE_PRICE_TITLE}-->(税込):
255                        <span class="price">
256                            <span id="price02_default_<!--{$id}-->">
257                                <!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
258                                    <!--{$arrProduct.price02_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
259                                <!--{else}-->
260                                    <!--{$arrProduct.price02_min|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->~<!--{$arrProduct.price02_max|sfCalcIncTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
261                                <!--{/if}-->
262                            </span><span id="price02_dynamic_<!--{$id}-->"></span>
263                            円</span>
264                    </div>
265
266                <!--★コメント★-->
267                <div class="listcomment"><!--{$arrProduct.main_list_comment|h|nl2br}--></div>
268
269                <!--★商品詳細を見る★-->
270                <div class="detail_btn">
271                    <!--{assign var=name value="detail`$id`"}-->
272                    <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->" onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_detail_on.jpg','<!--{$name}-->');" onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_detail.jpg','<!--{$name}-->');">
273                        <img src="<!--{$TPL_URLPATH}-->img/button/btn_detail.jpg" alt="商品詳細を見る" name="<!--{$name}-->" id="<!--{$name}-->" /></a>
274                </div>
275
276                <!--▼買い物かご-->
277                    <form name="product_form<!--{$id|h}-->" action="?" onsubmit="return false;">
278                        <input type="hidden" name="product_id" value="<!--{$id|h}-->" />
279                        <input type="hidden" name="product_class_id" id="product_class_id<!--{$id|h}-->" value="<!--{$tpl_product_class_id[$id]}-->" />
280                        <input type="hidden" name="product_type" id="product_type<!--{$id|h}-->" value="<!--{$tpl_product_type[$id]}-->" />
281
282                    <div class="cart_area clearfix">
283                    <!--{if $tpl_stock_find[$id]}-->
284                        <!--{if $tpl_classcat_find1[$id]}-->
285                            <div class="classlist">
286                                <dl class="size01 clearfix">
287                                        <!--▼規格1-->
288                                        <dt><!--{$tpl_class_name1[$id]|h}-->:</dt>
289                                        <dd>
290                                            <select name="classcategory_id1" style="<!--{$arrErr.classcategory_id1|sfGetErrorColor}-->" onchange="fnSetClassCategories(this.form);">
291                                                <!--{html_options options=$arrClassCat1[$id] selected=$arrProduct.classcategory_id1}-->
292                                            </select>
293                                            <!--{if $arrErr.classcategory_id1 != ""}-->
294                                                <p class="attention">※ <!--{$tpl_class_name1[$id]}-->を入力して下さい。</p>
295                                            <!--{/if}-->
296                                       </dd>
297                                        <!--▲規格1-->
298                                </dl>
299                               <dl class="size02 clearfix">
300                                    <!--{if $tpl_classcat_find2[$id]}-->
301                                        <!--▼規格2-->
302                                        <dt><!--{$tpl_class_name2[$id]|h}-->:</dt>
303                                        <dd>
304                                            <select name="classcategory_id2" style="<!--{$arrErr.classcategory_id2|sfGetErrorColor}-->" onchange="fnCheckStock(this.form);">
305                                           </select>
306                                            <!--{if $arrErr.classcategory_id2 != ""}-->
307                                                <p class="attention">※ <!--{$tpl_class_name2[$id]}-->を入力して下さい。</p>
308                                            <!--{/if}-->
309                                        </dd>
310                                        <!--▲規格2-->
311                                </dl>
312                            </div>
313                            <!--{/if}-->
314                        <!--{/if}-->
315
316                        <div class="cartin clearfix">
317                            <div class="quantity">
318                               数量:<input type="text" name="quantity" class="box" value="<!--{$arrProduct.quantity|default:1|h}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.quantity|sfGetErrorColor}-->" />
319                                <!--{if $arrErr.quantity != ""}-->
320                                    <br /><span class="attention"><!--{$arrErr.quantity}--></span>
321                                <!--{/if}-->
322                             </div>
323                             <div class="cartin_btn">
324                                 <!--★カゴに入れる★-->
325                                 <div id="cartbtn_default_<!--{$id}-->">
326                                     <input type="image" id="cart<!--{$id}-->" src="<!--{$TPL_URLPATH}-->img/button/btn_cartin.jpg" alt="カゴに入れる" onclick="fnInCart(this.form); return false;" onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_cartin_on.jpg', this);" onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_cartin.jpg', this);" />
327                                 </div>
328                                 <div class="attention" id="cartbtn_dynamic_<!--{$id}-->"></div>
329                             </div>
330                         </div>
331
332                         <!--{else}-->
333                     <div class="cartbtn attention">申し訳ございませんが、只今品切れ中です。</div>
334                <!--{/if}-->
335
336                    </div>
337                </form>
338                <!--▲買い物かご-->
339            </div>
340        </div>
341        <!--▲商品-->
342
343        <!--{if $smarty.foreach.arrProducts.last}-->
344            <!--▼ページナビ(下部)-->
345            <form name="page_navi_bottom" id="page_navi_bottom" action="?">
346                <!--{if $tpl_linemax > 0}--><!--{$smarty.capture.page_navi_body|smarty:nodefaults}--><!--{/if}-->
347            </form>
348            <!--▲ページナビ(下部)-->
349        <!--{/if}-->
350
351    <!--{foreachelse}-->
352        <!--{include file="frontparts/search_zero.tpl"}-->
353    <!--{/foreach}-->
354
355</div>
356<!--▲CONTENTS-->
Note: See TracBrowser for help on using the repository browser.