EC-CUBE、ヘッダーにログインボタンをつける | 品川のウェブサービス会社で働く宴会部長のブログ

先週末は母の日でした~。

ちょっと前に楽天でよさそうなプレゼントを見つけたから
11日に届けてもらいました。


ミニブーケとかわいいトイレットペーパー&ティッシュですキラキラ


かわいいし、日用品だし、
後々邪魔にならないからいいかな~~と思ったんですが
反応イマイチseiガビーン

使ってはくれているようですが
切ないわぁぁsei


そしてその日は
母にご飯ごちそうしてもらってました汗


なんかいろいろ失敗してる気もしますが、
母的には一緒にご飯食べられてうれしかったようなので
まぁ良しとしようQueenlyOK



☆*゚ ゜゚*☆*゚ ゜゚*☆*゚ ゜゚*☆*゚ ゜゚*

EC-CUBEバージョン:2.11.4


今回はPCサイトだけ。


/data/Smarty/templates/default/header.tpl

ログイン/ログアウトボタンの箇所を下記のようにする。

------------------------------------------------------

<form name="header_login_form" id="header_login_form" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" onsubmit="return fnCheckLogin('header_login_form')">

<input type="hidden" name="mode" value="login" />

<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />

<input type="hidden" name="url" value="<!--{$smarty.server.PHP_SELF|h}-->" />

<!--{if $smarty.session.customer|@count > 0}-->

 <li><a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php" onclick="fnFormModeSubmit('header_login_form', 'logout', '', ''); return false;">ログアウト</a></li>

<!--{else}-->

 <li class="login"><a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php">ログイン</a></li>

<!--{/if}-->

</form>

------------------------------------------------------



このままだとログアウトしたときトップページに遷移するので

元のページを開くようにする。

(ただし、shopping以下のページの場合はトップページに遷移)


/data/class/pages/frontparts/LC_Page_FrontParts_loginCheck.php

187行目あたり以下、case 'logout':のところ、

青字をコメントアウトして

赤字を追加

------------------------------------------------------

case 'logout':

 // --- ログアウト


 // ログイン情報の解放

 $objCustomer->EndSession();

 // 画面遷移の制御

 $mypage_url_search = strpos('.'.$_POST['url'], 'mypage');

 if ($mypage_url_search == 2) {

 // マイページログイン中はログイン画面へ移行

 SC_Response_Ex::sendRedirectFromUrlPath('mypage/login.php');

 } else {

  // 上記以外の場合、トップへ遷移

  //SC_Response_Ex::sendRedirect(HTTP_URL);

  //shoppingならトップページへ、それ以外なら元のページへ遷移

  $shopping_url_search = strpos('.'.$_POST['url'], 'shopping');

  if ($shopping_url_search >= 1) {

   SC_Response_Ex::sendRedirect(HTTP_URL);

  }else{

   SC_Response_Ex::sendRedirect($_SERVER['HTTP_REFERER']);

  }

 }

 exit;

 break;


------------------------------------------------------