ホーム » ブログ » ECCUBEで全ページへログインチェックを入れる
このエントリーをはてなブックマークに追加
@2015/06/06

スポンサーリンク

どうも開発中のサイトを外に見せたくないですね。
basic認証や.htaccessにIP制限などで外からの閲覧が防止できます。
ところで、IP制限などの場合(特定IPのみ許可する)、内部ユーザは家庭ネットワークのよく変わるIPからのアクセスもできなくなってしまう。

インタネットでログインチェックかける記事が沢山あります。その中のある方法を試したが、ページの左メニューは未ログイン状態も見える。
まぁ、右側のページのメインコンテンツが隠されたから、・・・・・

今回は別の方法でEccubeの全ページにログインチェックを入れる。(2 steps)
先ず、data/class_extends/page_extends/LC_Page_Ex.phpに以下のコードを追加してください。

/**
* 全ページをログインチェックを実施する。TODO 削除予定
* @see LC_Page::init()
*/
public function init()
{
parent::init();
// ログイン判定
$objCustomer = new SC_Customer_Ex();
if ($objCustomer->isLoginSuccess() === true) {
$this->tpl_login = true;
}
}

これで、商品詳細や注文ページに、未ログイン状態のユーザに内容を隠すことができました。
しかし、トップページはまるで見える状態です。

それでは、step 2で、data/Smarty/templates/default/site_frame.tpl
に以下のロジックを入れる。

{** もとのソースは:<!--{include file='./site_main.tpl'}--> **}
<!--{if $tpl_login}-->
<!-- ▼BODY部 スタート -->
<!--{include file='./site_main.tpl'}-->
<!-- ▲BODY部 エンド -->
<!--{else}-->
<!-- 全ページログインチェック実施。TODO 削除予定 -->
<!--{include file='./header.tpl'}-->
<!--{/if}-->

これによって、すでにログインの場合、従来のままで表示しますが、
未ログインの時、ページのヘッダーのみ表示する。(ログインブロックをヘッダーに入れてください。そうしないと、サイトを永遠にログインできないから)

以上で、全ページにログインチェックを入れました

♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check