ITOBEN STYLE > EC-CUBE:カゴに入れた直後にカート画面に飛ばない。アラートボックスの表示方法。 2012年5月12日カテゴリー:未分類 EC-CUBE:カゴに入れた直後にカート画面に飛ばない。アラートボックスの表示方法。 「カゴに入れた直後にカート画面に飛ばないようにする」に、さらに機能を追加した。 https://itoben.com/style/366.html 【注意】 ここで利用している「jQuery Noty」は、EC-CUBEに入っている、/html/jsjquery-1.4.2.min.jsでは動きません。 最新版のjsjquery.min.js、あるいはそれに近いものをダウンロードして適用してください。 data/Smarty/templates/default/site_frame.tplの修正も必要です。 戯れ問答さんの、ページにjQuery Notyの使い方などが詳しく書かれています。 次の3つの中から、表示方法を選択できるようにする。 (1) 「カゴに商品が追加されました。」というアラートボックスが表示されるので、OKをクリックしてアラートを閉じる。 (2) カートに移動するか、ページにとどまるかを「OK」または「キャンセル」で選択する。 (3) 「カゴに商品が追加されました。」とメッセージが表示され、2秒後に自動的に閉じる。あるいは、クリックしても閉じる。 1 アラートボックスの表示方法を選択できるようにするためにパラメータ(mtb_constantsテーブル)に登録する。 ——————————————- id:CARTIN_ALERT name:3 rank:1250(←適宜) remarks:カゴに入れた時のアラート表示 1/通常の「OK」ボタン 2/カートに移動か、ページにとどまるかを選択 3/自動的に閉じる ——————————————- ★システム設定>パラメーター設定を開き、「この内容で登録する」をクリック。 2 自動でアラートを閉じられるように、jQuery Notyを利用する。 http://needim.github.com/noty/ (1)ダウンロードしたファイルのうち、下記の3つのファイルを使用する。 jquery.noty.js jquery.noty.css noty_theme_default.css (2)下記フォルダを作成し、3つのファイルを置く。 ■html/js/jquery.noty 3 ■data/Smarty/templates/default/site_frame.tpl 追加 [php] [/php] 4 商品詳細ページ (1)■data/class/pages/products/LC_Page_Products_Detail.php ① 160行目あたりを変更 (https://itoben.com/style/366.htmlと同じ) [php] SC_Response_Ex::sendRedirect(CART_URLPATH); exit; ↓(変更) //カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { SC_Response_Ex::sendRedirect(CART_URLPATH); exit; } else { //セッションに商品を買った事を保持する $_SESSION[‘cart_buy_now’] = TRUE; //リンク元のURLにリダイレクトさせる SC_Response_Ex::sendRedirect($_SERVER[‘HTTP_REFERER’]); exit; } [/php] ② 337行目あたりに追加 function action()内の一番最後 (https://itoben.com/style/366.htmlと同じ) [php] //カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { } else { if ($_SESSION[‘cart_buy_now’] === true) { $_SESSION[‘cart_buy_now’] = ”; $this->CartBuyNow = true; } // カテゴリーIDをアサイン $this->tpl_Category_Id = $_GET[‘category_id’]; } [/php] (2)■/data/Smarty/templates/default/products/detail.tpl ① 45行目あたりを変更 (https://itoben.com/style/366.htmlと同じ) [php] ↓ ② 一番下 の後に (https://itoben.com/style/366.htmlを変更) [php] [/php] 5 商品一覧ページ (1)■data/class/pages/products/LC_Page_Products_List.php ① 197行目あたりを変更 (https://itoben.com/style/366.htmlと同じ) [php] SC_Response_Ex::sendRedirect(CART_URLPATH); exit; ↓(変更) //カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { SC_Response_Ex::sendRedirect(CART_URLPATH); exit; } else { //セッションに商品を買った事を保持する $_SESSION[‘cart_buy_now’] = TRUE; //リンク元のURLにリダイレクトさせる SC_Response_Ex::sendRedirect($_SERVER[‘HTTP_REFERER’]); exit; } [/php] ② 245行目あたりに追加 function action()内の一番最後 (https://itoben.com/style/366.htmlと同じ) [php] //カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { } else { if ($_SESSION[‘cart_buy_now’] === true) { $_SESSION[‘cart_buy_now’] = ”; $this->CartBuyNow = true; } } [/php] (2)■/data/Smarty/templates/default/products/list.tpl ① 一番下 の後に (https://itoben.com/style/366.htmlを変更) [php] [/php]
「カゴに入れた直後にカート画面に飛ばないようにする」に、さらに機能を追加した。
https://itoben.com/style/366.html
【注意】
ここで利用している「jQuery Noty」は、EC-CUBEに入っている、/html/jsjquery-1.4.2.min.jsでは動きません。
最新版のjsjquery.min.js、あるいはそれに近いものをダウンロードして適用してください。
data/Smarty/templates/default/site_frame.tplの修正も必要です。
戯れ問答さんの、ページにjQuery Notyの使い方などが詳しく書かれています。
次の3つの中から、表示方法を選択できるようにする。
(1) 「カゴに商品が追加されました。」というアラートボックスが表示されるので、OKをクリックしてアラートを閉じる。
(2) カートに移動するか、ページにとどまるかを「OK」または「キャンセル」で選択する。
(3) 「カゴに商品が追加されました。」とメッセージが表示され、2秒後に自動的に閉じる。あるいは、クリックしても閉じる。
1 アラートボックスの表示方法を選択できるようにするためにパラメータ(mtb_constantsテーブル)に登録する。
——————————————-
id:CARTIN_ALERT
name:3
rank:1250(←適宜)
remarks:カゴに入れた時のアラート表示 1/通常の「OK」ボタン 2/カートに移動か、ページにとどまるかを選択 3/自動的に閉じる
——————————————-
★システム設定>パラメーター設定を開き、「この内容で登録する」をクリック。
2 自動でアラートを閉じられるように、jQuery Notyを利用する。
http://needim.github.com/noty/
(1)ダウンロードしたファイルのうち、下記の3つのファイルを使用する。
jquery.noty.js jquery.noty.css noty_theme_default.css
(2)下記フォルダを作成し、3つのファイルを置く。
■html/js/jquery.noty
3 ■data/Smarty/templates/default/site_frame.tpl 追加
[php]
[/php]
4 商品詳細ページ
(1)■data/class/pages/products/LC_Page_Products_Detail.php
① 160行目あたりを変更 (https://itoben.com/style/366.htmlと同じ)
[php]
SC_Response_Ex::sendRedirect(CART_URLPATH);
exit;
↓(変更)
//カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。
if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) {
SC_Response_Ex::sendRedirect(CART_URLPATH);
exit;
} else {
//セッションに商品を買った事を保持する
$_SESSION[‘cart_buy_now’] = TRUE;
//リンク元のURLにリダイレクトさせる
SC_Response_Ex::sendRedirect($_SERVER[‘HTTP_REFERER’]);
exit;
}
[/php]
② 337行目あたりに追加 function action()内の一番最後 (https://itoben.com/style/366.htmlと同じ)
[php]
//カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。
if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) {
} else {
if ($_SESSION[‘cart_buy_now’] === true) {
$_SESSION[‘cart_buy_now’] = ”;
$this->CartBuyNow = true;
}
// カテゴリーIDをアサイン
$this->tpl_Category_Id = $_GET[‘category_id’];
}
[/php]
(2)■/data/Smarty/templates/default/products/detail.tpl
① 45行目あたりを変更 (https://itoben.com/style/366.htmlと同じ)
[php]