[ECCUBE2]ログアウトを設置する方法

なかったんだよ

自動的なログアウトの仕組み

ECCUBE2では管理画面でセッションの有効期限を設定している。

「システム設定>パラメーター設定」の「MAX_LIFETIME」がそれに当たる。

ECCUBE2のモバイルはガラケーのことなので、PCとスマホはこれで一括して設定される。

EC-CUBE工房
EC-CUBE工房はEC-CUBEと共に歴史を歩んできたEC-CUBE改造専門店です。ショップオーナー様がかかえる様々なお悩みをその豊富な経験と知識で解決に導きます。

ログアウトを設置する

元々ないのかたまたまなかったのか、いじってるECCUBEにはログアウトが設置されてなかった。それを設置しようぜってことになった。詳細は省いて、ログインしなきゃ見れないマイページ上にログアウトを設置することになった。

前準備

「ログアウト」をクリックしたらログアウトする仕組みを組む。マイページに設置するんで、マイページ上に処理を組み込む。

対象
/data/Smarty/templates/default/mypage/LC_Page_Mypage.php

function action() {
︙
    if ($_GET['mode'] == 'logout'){
        $objCustomer->EndSession();
        header("Location: index.php");
    }
}

URLについたパラメータを取得して、該当するなら処理するって内容。

組み込む

/mypage/内ならどこに書いても大丈夫だと思う。

対象
/data/Smarty/templates/default/mypage/navi.tpl

<a href="index.php?mode=logout">ログアウト</a>

こんなかんじ。

クリックすると非ログイン状態でマイページのトップに飛ぶ。

『eccube 2.11 マイページのメニューにログアウト追加』
よくよく考えたら、マイページに「ログアウトボタン」つけてなかった…。ってことで、マイページのナビ部分(上部のメニュー部分)にログアウトリンクを追加。。/dat…

まとめというか

ECCUBE2系は自社ECの走りみたいなもんで、だからEC以外の機能は弱いんで、MTと合わせて運用することが珍しくなかった。同一ドメイン内で2つのCMSを運用して擬似的に1サイトとして作ったもんだから、ページによってCMSが異なるからヘッダーとかにログイン・非ログイン状態の条件分岐を仕込むことができない。MT上じゃECCUBEの内容を拾えないからね。拾えるかもしれないけど、できたとしても正攻法じゃないからね。そんな感じで、マイページに関するメニューは条件分岐が設置できないので単純にマイページに飛ばすってことしかできない。不便だよね。不便ですね。

まあ見せ方によるんだけどさ。

コメント

タイトルとURLをコピーしました