Changeset 17931


Ignore:
Timestamp:
2009/03/25 21:53:25 (15 years ago)
Author:
kishida
Message:

お気に入り商品機能

Location:
branches/version-2_4
Files:
13 added
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_4/data/Smarty/templates/default/mypage/navi.tpl

    r17797 r17931  
    2222 */ 
    2323*}--> 
     24 
    2425<div id="mynavarea"> 
    25     <ul> 
    26     <!--{if $tpl_mypageno == 'index'}--> 
    27         <li><a href="./index.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi01_on.jpg" width="170" height="30" alt="購入履歴一覧" border="0" name="m_navi01" /></a></li> 
    28     <!--{else}--> 
    29         <li><a href="./index.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi01_on.jpg','m_navi01');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi01.jpg','m_navi01');"><img src="<!--{$TPL_DIR}-->img/mypage/navi01.jpg" width="170" height="30" alt="購入履歴一覧" border="0" name="m_navi01" /></a></li> 
     26    <!--{strip}--> 
     27    <ul class="button_like"> 
     28        <li> 
     29            <!--{if $tpl_mypageno == 'index'}--> 
     30                <a href="<!--{$SITE_URL}-->/mypage/index.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi01_on.jpg" width="170" height="30" alt="購入履歴一覧" border="0" name="m_navi01" /></a> 
     31            <!--{else}--> 
     32                <a href="<!--{$SITE_URL}-->/mypage/index.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi01_on.jpg','m_navi01');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi01.jpg','m_navi01');"><img src="<!--{$TPL_DIR}-->img/mypage/navi01.jpg" width="170" height="30" alt="購入履歴一覧" border="0" name="m_navi01" /></a> 
     33            <!--{/if}--> 
     34        </li> 
     35        <!--{if $smarty.const.OPTION_FAVOFITE_PRODUCT == 1}--> 
     36            <li> 
     37                <!--{if $tpl_mypageno == 'delivery'}--> 
     38                    <a href="<!--{$SITE_URL}-->/mypage/favorite.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi05_on.jpg" width="170" height="30" alt="お気に入り商品一覧" border="0" name="m_navi05" /></a> 
     39                <!--{else}--> 
     40                    <a href="<!--{$SITE_URL}-->/mypage/favorite.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi05_on.jpg','m_navi05');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi05.jpg','m_navi05');"><img src="<!--{$TPL_DIR}-->img/mypage/navi05.jpg" width="170" height="30" alt="お気に入り商品一覧" border="0" name="m_navi05" /></a> 
     41                <!--{/if}--> 
     42            </li> 
     43        <!--{/if}--> 
     44        <li> 
     45            <!--{if $tpl_mypageno == 'change'}--> 
     46                <a href="<!--{$SITE_URL}-->/mypage/change.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi02_on.jpg" width="170" height="30" alt="会員登録内容変更" border="0" name="m_navi02" /></a> 
     47            <!--{else}--> 
     48                <a href="<!--{$SITE_URL}-->/mypage/change.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi02_on.jpg','m_navi02');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi02.jpg','m_navi02');"><img src="<!--{$TPL_DIR}-->img/mypage/navi02.jpg" width="170" height="30" alt="会員登録内容変更" border="0" name="m_navi02" /></a> 
     49            <!--{/if}--> 
     50        </li> 
     51        <li> 
     52            <!--{if $tpl_mypageno == 'delivery'}--> 
     53                <a href="<!--{$SITE_URL}-->/mypage/delivery.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi03_on.jpg" width="170" height="30" alt="お届け先追加・変更" border="0" name="m_navi03" /></a> 
     54            <!--{else}--> 
     55                <a href="<!--{$SITE_URL}-->/mypage/delivery.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi03_on.jpg','m_navi03');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi03.jpg','m_navi03');"><img src="<!--{$TPL_DIR}-->img/mypage/navi03.jpg" width="170" height="30" alt="お届け先追加・変更" border="0" name="m_navi03" /></a> 
     56            <!--{/if}--> 
     57        </li> 
     58        <li> 
     59            <!--{if $tpl_mypageno == 'refusal'}--> 
     60                <a href="<!--{$SITE_URL}-->/mypage/refusal.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi04_on.jpg" width="170" height="30" alt="退会手続き" border="0" name="m_navi04" /></a> 
     61            <!--{else}--> 
     62                <a href="<!--{$SITE_URL}-->/mypage/refusal.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi04_on.jpg','m_navi04');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi04.jpg','m_navi04');"><img src="<!--{$TPL_DIR}-->img/mypage/navi04.jpg" width="170" height="30" alt="退会手続き" border="0" name="m_navi04" /></a> 
     63            <!--{/if}--> 
     64        </li> 
     65    </ul> 
     66    <!--{/strip}--> 
     67    <!--▼現在のポイント--> 
     68    <!--{if $point_disp !== false}--> 
     69        <ul> 
     70             <li>ようこそ <br /> 
     71                 <!--{$CustomerName1|escape}--> <!--{$CustomerName2|escape}-->様 
     72                 <!--{if $smarty.const.USE_POINT !== false}--> 
     73                     <br />現在の所持ポイントは<em><!--{$CustomerPoint|number_format|escape|default:"0"}-->pt</em> です。 
     74                 <!--{/if}--> 
     75             </li> 
     76        </ul> 
    3077    <!--{/if}--> 
    31     <!--{if $tpl_mypageno == 'change'}--> 
    32         <li><a href="./change.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi02_on.jpg" width="170" height="30" alt="会員登録内容変更" border="0" name="m_navi02" /></a></li> 
    33     <!--{else}--> 
    34         <li><a href="./change.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi02_on.jpg','m_navi02');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi02.jpg','m_navi02');"><img src="<!--{$TPL_DIR}-->img/mypage/navi02.jpg" width="170" height="30" alt="会員登録内容変更" border="0" name="m_navi02" /></a></li> 
    35     <!--{/if}--> 
    36     <!--{if $tpl_mypageno == 'delivery'}--> 
    37         <li><a href="./delivery.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi03_on.jpg" width="170" height="30" alt="お届け先追加・変更" border="0" name="m_navi03" /></a></li> 
    38     <!--{else}--> 
    39         <li><a href="./delivery.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi03_on.jpg','m_navi03');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi03.jpg','m_navi03');"><img src="<!--{$TPL_DIR}-->img/mypage/navi03.jpg" width="170" height="30" alt="お届け先追加・変更" border="0" name="m_navi03" /></a></li> 
    40     <!--{/if}--> 
    41     <!--{if $tpl_mypageno == 'refusal'}--> 
    42         <li><a href="./refusal.php"><img src="<!--{$TPL_DIR}-->img/mypage/navi04_on.jpg" width="170" height="30" alt="退会手続き" border="0" name="m_navi04" /></a></li> 
    43     <!--{else}--> 
    44         <li><a href="./refusal.php" onmouseover="chgImg('<!--{$TPL_DIR}-->img/mypage/navi04_on.jpg','m_navi04');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/mypage/navi04.jpg','m_navi04');"><img src="<!--{$TPL_DIR}-->img/mypage/navi04.jpg" width="170" height="30" alt="退会手続き" border="0" name="m_navi04" /></a></li> 
    45     <!--{/if}--> 
    46     <!-- 現在のポイント ここから --> 
    47     <!--{if $point_disp !== false}--> 
    48          <li>ようこそ <br /> 
    49              <!--{$CustomerName1|escape}--> <!--{$CustomerName2|escape}-->様 
    50              <!--{if $smarty.const.USE_POINT === true}--> 
    51                  <br />現在の所持ポイントは<em><!--{$CustomerPoint|number_format|escape|default:"0"}-->pt</em>です。 
    52              <!--{/if}--> 
    53          </li> 
    54     <!--{/if}--> 
    55     <!-- 現在のポイント ここまで --> 
    56     </ul> 
     78    <!--▲現在のポイント--> 
    5779</div> 
    5880<!--▲NAVI--> 
  • branches/version-2_4/data/class/pages/products/LC_Page_Products_Detail.php

    r17468 r17931  
    8787        $helper->sfGetPageLayout($this, false, "products/detail.php"); 
    8888 
     89        // ログイン中のユーザが商品をお気に入りにいれる処理 
     90        if( $objCustomer->isLoginSuccess() === true && strlen($_POST['mode']) > 0 && $_POST['mode'] == "add_favorite" && strlen($_POST['favorite_product_id']) > 0 ) { 
     91            // 値の正当性チェック 
     92            if(!SC_Utils_Ex::sfIsInt($_POST['favorite_product_id']) || !$objDb->sfIsRecord("dtb_products", "product_id", $_POST['favorite_product_id'], "del_flg = 0 AND status = 1")) { 
     93                SC_Utils_Ex::sfDispSiteError(PRODUCT_NOT_FOUND); 
     94                exit; 
     95            } else { 
     96                $this->arrErr = $this->lfCheckError(); 
     97                if(count($this->arrErr) == 0) { 
     98                    $customer_id = $objCustomer->getValue('customer_id'); 
     99                    $this->lfRegistFavoriteProduct($customer_id, $_POST['favorite_product_id']); 
     100                } 
     101            } 
     102        } 
     103 
    89104        // パラメータ管理クラス 
    90105        $this->objFormParam = new SC_FormParam(); 
     
    121136        } 
    122137        // ログイン判定 
    123         if($objCustomer->isLoginSuccess()) { 
     138        if($objCustomer->isLoginSuccess() === true) { 
    124139            //お気に入りボタン表示 
    125140            $this->tpl_login = true; 
     
    208223        $objQuery = new SC_Query(); 
    209224        // DBから商品情報を取得する。 
    210         $arrRet = $objQuery->select("*", "vw_products_allclass_detail AS alldtl", "product_id = ?", array($tmp_id)); 
     225        $arrRet = $objQuery->select("*, (SELECT count(*) FROM dtb_customer_favorite_products WHERE product_id = alldtl.product_id AND customer_id = ?) AS favorite_count", "vw_products_allclass_detail AS alldtl", "product_id = ?", array($objCustomer->getValue('customer_id'), $tmp_id)); 
    211226        $this->arrProduct = $arrRet[0]; 
    212227 
     
    754769    /* 入力内容のチェック */ 
    755770    function lfCheckError() { 
    756         // 入力データを渡す。 
    757         $arrRet =  $this->objFormParam->getHashArray(); 
    758         $objErr = new SC_CheckError($arrRet); 
    759         $objErr->arrErr = $this->objFormParam->checkError(); 
    760  
    761         // 複数項目チェック 
    762         if ($this->tpl_classcat_find1) { 
    763             $objErr->doFunc(array("規格1", "classcategory_id1"), array("EXIST_CHECK")); 
    764         } 
    765         if ($this->tpl_classcat_find2) { 
    766             $objErr->doFunc(array("規格2", "classcategory_id2"), array("EXIST_CHECK")); 
     771        if ($_POST['mode'] == "add_favorite") { 
     772            $objCustomer = new SC_Customer(); 
     773            $objErr = new SC_CheckError(); 
     774            $customer_id = $objCustomer->getValue('customer_id'); 
     775            if (SC_Helper_DB_Ex::sfDataExists('dtb_customer_favorite_products', 'customer_id = ? AND product_id = ?', array($customer_id, $favorite_product_id))) { 
     776                $objErr->arrErr['add_favorite'.$favorite_product_id] = "※ この商品は既にお気に入りに追加されています。<br />"; 
     777            } 
     778        } else { 
     779            // 入力データを渡す。 
     780            $arrRet =  $this->objFormParam->getHashArray(); 
     781            $objErr = new SC_CheckError($arrRet); 
     782            $objErr->arrErr = $this->objFormParam->checkError(); 
     783 
     784            // 複数項目チェック 
     785            if ($this->tpl_classcat_find1) { 
     786                $objErr->doFunc(array("規格1", "classcategory_id1"), array("EXIST_CHECK")); 
     787            } 
     788            if ($this->tpl_classcat_find2) { 
     789                $objErr->doFunc(array("規格2", "classcategory_id2"), array("EXIST_CHECK")); 
     790            } 
    767791        } 
    768792 
     
    848872        $this->arrForm['quantity']['value'] = htmlspecialchars($value, ENT_QUOTES, CHAR_CODE); 
    849873    } 
     874 
     875        /* 
     876     * お気に入り商品登録 
     877     */ 
     878    function lfRegistFavoriteProduct($customer_id, $product_id) { 
     879        $objQuery = new SC_Query(); 
     880        $objConn = new SC_DbConn(); 
     881        $count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer_favorite_products WHERE customer_id = ? AND product_id = ?", array($customer_id, $product_id)); 
     882 
     883        if ($count == 0) { 
     884            $sqlval['customer_id'] = $customer_id; 
     885            $sqlval['product_id'] = $product_id; 
     886            $sqlval['update_date'] = "now()"; 
     887            $sqlval['create_date'] = "now()"; 
     888 
     889            $objQuery->begin(); 
     890            $objQuery->insert('dtb_customer_favorite_products', $sqlval); 
     891            $objQuery->commit(); 
     892        } 
     893    } 
    850894} 
    851895?> 
  • branches/version-2_4/data/mtb_constants_init.php

    r17790 r17931  
    667667/** オーナーズストア通信エラーコード */ 
    668668define('OSTORE_E_C_BATCH_ERR', '2010'); 
     669/** お気に入り商品登録(有効:1 無効:0) */ 
     670define('OPTION_FAVOFITE_PRODUCT','1'); 
     671/** お気に入り商品を表示する際に、在庫なし商品の表示・非表示(非表示:true 表示:false) */ 
     672define('NOSTOCK_HIDDEN', false); 
    669673?> 
  • branches/version-2_4/html/install/sql/create_table_pgsql.sql

    r17767 r17931  
    463463    create_date timestamp NOT NULL, 
    464464    update_date timestamp NOT NULL DEFAULT NOW() 
     465); 
     466 
     467CREATE TABLE dtb_customer_favorite_products ( 
     468    customer_id int4 NOT NULL, 
     469    product_id int4 NOT NULL, 
     470    create_date timestamp NOT NULL DEFAULT now(), 
     471    update_date timestamp NOT NULL DEFAULT now(), 
     472    PRIMARY KEY (customer_id, product_id) 
    465473); 
    466474 
  • branches/version-2_4/html/install/sql/drop_table.sql

    r17143 r17931  
    9393DROP TABLE mtb_ownersstore_ips; 
    9494DROP TABLE dtb_holiday; 
     95DROP TABLE dtb_customer_favorite_products; 
  • branches/version-2_4/html/install/sql/insert_data.sql

    r17817 r17931  
    11091109INSERT INTO mtb_constants VALUES ('OSTORE_E_C_PERMISSION', '"2009"', 521, 'オーナーズストア通信エラーコード'); 
    11101110INSERT INTO mtb_constants VALUES ('OSTORE_E_C_BATCH_ERR', '"2010"', 522, 'オーナーズストア通信エラーコード'); 
     1111INSERT INTO mtb_constants VALUES ('OPTION_FAVOFITE_PRODUCT','1',523,'お気に入り商品登録(有効:1 無効:0)'); 
    11111112 
    11121113INSERT INTO dtb_module (module_id,module_code,module_name,update_date,create_date)values(0,0,'patch',now(),now()); 
  • branches/version-2_4/html/user_data/packages/default/css/products.css

    r16708 r17931  
    257257    padding: 15px 0 0 0; 
    258258    text-align: center; 
     259    vertical-align: top; 
    259260    background: url("../img/common/line_280.gif") no-repeat; 
    260261} 
Note: See TracChangeset for help on using the changeset viewer.