[EC-CUBE 2.13]ログインしている時としていない時のヘッダーの表示内容を変える
- 公開日:2015/3/5
この記事は最終更新日から9年以上が経過しています。
ヘッダーに「ログイン」ボタンを表示しています。
これが、ログインした状態でも表示されていると不自然なので、ログインした状態では「Myページ」に変更する方法のメモです。
ログイン判定フラグを追加
data/class/pages/LC_Page.phpに以下を追加します。
// 店舗基本情報取得 $this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisData(); // トランザクショントークンの検証と生成 $this->doValidToken(); $this->setTokenTo(); // ローカルフックポイントを実行. $this->doLocalHookpointBefore($objPlugin); //ログイン判定 $objCustomer = new SC_Customer(); if ($objCustomer->isLoginSuccess()) { $this->tpl_login = true; }
ヘッダーにログイン判定処理を
ログイン判定できるフラグを使って、表示を切り替えます。
<!--{if $tpl_login}--> <div>ここにログインしている時の記述をする</div> <!--{else}--> <div>ここにログインしていない時の記述をする</div> <!--{/if}-->
これで、ログイン前は「ログイン」「新規会員登録」を表示しておき、ログイン後は「MYページ」「お気に入り」「購入履歴」などに切り替えたりなど、ショップに合わせたカスタマイズができるようになります。
ログイン後に「ようこそ、○○さん!」といったふうに名前を表示したい場合は、ちょっと追記が必要になります。
ログイン判定フラグ追加時に名前を取得する
さきほどの data/class/pages/LC_Page.php に以下を追加します。
//ログイン判定 $objCustomer = new SC_Customer(); if ($objCustomer->isLoginSuccess()) { $this->tpl_login = true; $this->tpl_name1 = $objCustomer->getValue('name01'); $this->tpl_name2 = $objCustomer->getValue('name02'); }
ヘッダーでの表示は、以下のように記述します。
<p>ようこそ、<!--{$tpl_name1|h}--> <!--{$tpl_name2|h}--> 様さん</p>