Hatena::ブログ(Diary)

ちらうら PHPとCMSとWEBデザインを貪る  RSSフィード

DesignerでもないEnginierでもないProgramerでもない職人目指して奮闘中・・・

2011-06-17

2.11.1 ヘッダーやページ内などブロック以外の場所にログアウトボタンを設置する

しばらく悩んでいましたが、どうにか2.11.1系でも実装が出来たので、自分用メモ。


EC-CUBEには最初から「ログイン」ブロックがありますが、

サイトのデザイン上、メールアドレスパスワードを入力するフォームを

常に表示させたくなかったりすることがよくあります。

「ログインボタンからログインページに移動して、そこからログインしてもらえればいいやー(´ー`)」

って場合ですね。


以前の2.4.x系ではテンプレート自体をブロック化させたり、ファイルを新しく作成したり、

何かと手間のかかるカスタマイズでありましたが、

2.11.1では「【ヘッダー】ログイン」ブロック内のソースを流用して実装します。


ログイン/ログアウトの判定をつける

以下のソースをメニューやヘッダー、フッターなどの切替えたいリンクの場所へ追加します。

(今回は、ログイン・ログアウトの切り替えと、会員登録・MYページの切り替えをします。)

<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 class="member"><a href="<!--{$smarty.const.URL_MYPAGE_TOP}-->">MYページ</a></li>
<li class="login"><a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php" onclick="fnFormModeSubmit('header_login_form', 'logout', '', ''); return false;">ログアウト</a></li>

<!--{else}-->

<!-- *** ここにログアウト時の表示を書きます *** -->
<li class="member"><a href="<!--{$smarty.const.ROOT_URLPATH}-->entry/kiyaku.php">会員登録</a></li>
<li class="login"><a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php">ログイン</a></li>

<!--{/if}-->
</form>


こんな感じで出来るかな、と思います(・ω・)

ちなみにですが、既存のログインブロックを併用しますと、

ログアウトの処理が正しくできなくなります。

セッションで見てるから・・・なんですけど。どうにか他の方法ないですかねorz

検索処理なんかも、もしかしたら干渉するかもしれない(検証はしてないけど)

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元