なかったんだよ
自動的なログアウトの仕組み
ECCUBE2では管理画面でセッションの有効期限を設定している。
「システム設定>パラメーター設定」の「MAX_LIFETIME」がそれに当たる。
ECCUBE2のモバイルはガラケーのことなので、PCとスマホはこれで一括して設定される。
ログアウトを設置する
元々ないのかたまたまなかったのか、いじってる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>
こんなかんじ。
クリックすると非ログイン状態でマイページのトップに飛ぶ。
まとめというか
ECCUBE2系は自社ECの走りみたいなもんで、だからEC以外の機能は弱いんで、MTと合わせて運用することが珍しくなかった。同一ドメイン内で2つのCMSを運用して擬似的に1サイトとして作ったもんだから、ページによってCMSが異なるからヘッダーとかにログイン・非ログイン状態の条件分岐を仕込むことができない。MT上じゃECCUBEの内容を拾えないからね。拾えるかもしれないけど、できたとしても正攻法じゃないからね。そんな感じで、マイページに関するメニューは条件分岐が設置できないので単純にマイページに飛ばすってことしかできない。不便だよね。不便ですね。
まあ見せ方によるんだけどさ。
コメント