前回に引き続きEC-CUBEネタです。
EC-CUBEには会員登録機能がデフォルトで付いており、会員登録をしてログインをすると買い物履歴が見れたりするのですが、いわゆる『マイページ』にはログアウトボタンがついていないのですよね。
これはちょっと不便…ということで、設置する方法を調べてみました。
参考にしたのは下記の2つのページです。
マイページのナビ部分、ログアウトリンクを表示したい箇所に下記を追加(テンプレートフォルダの mypage/navi.tpl)
<form name="login_form" id="login_form" method="post" action="<!--{$smarty.const.SSL_URL}-->frontparts/login_check.php" onsubmit="return fnCheckLogin('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|escape}-->" />
<a href="<!--{$smarty.server.PHP_SELF|escape}-->" onclick="fnFormModeSubmit('login_form', 'logout', '', ''); return false;">ログアウト</a>
</form>
次に /web/data/class/pages/mypage/LC_Page_MyPage の function process() 内に
// トランザクションIDの取得
$this->transactionid = $this->getToken();
以上でマイページからもログアウトできるようになります。
マイページ内のどこからでもログアウトできるようにするためには、LC_Page_MyPage.php以外のマイページ関連ファイルにも記述しないと動作しないので注意が必要です。