EC-CUBE 2.x

EC-CUBE에서 모든 페이지에서 로그인 체크하기

by TheVOS posted Nov 11, 2019
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
Extra Form
原文出所 https://blog.ko31.com/201408/eccube-login-check/

EC-CUBE는 Ver 2.12.6 환경입니다.


지정 방법

EC-CUBE는 로그인 판정 결과를 tpl_login라는 변수로 설정하고 일부 페이지가 기본적으로 존재합니다.

예를 들어, 아래와 같이 소스를 grep하면 tpl_login에 값을 설정하는 부분을 찾을 수 있습니다.

1
2
3
4
5
6
7
$ grep -rn "\$this\->tpl_login =" *
data/class/pages/products/LC_Page_Products_Detail.php:240:            $this->tpl_login = true;
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php:43:        $this->tpl_login = false;
data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Login.php:72:            $this->tpl_login = true;
data/class/pages/shopping/LC_Page_Shopping_Payment.php:95:            $this->tpl_login = '1';
data/class/pages/shopping/LC_Page_Shopping_Confirm.php:129:            $this->tpl_login = '1';
data/class/pages/cart/LC_Page_Cart.php:200:            $this->tpl_login = true;

위의 이름에서 짐작이 붙는 것처럼, 상품 상세 페이지 로그인 블록, 장바구니 페이지, ... 등 특정 페이지를 표시 할 때 사용되는 클래스인데,이 페이지에서는 변수 tpl_login에 설정된 로그인 있는지 (true) 아닌지 (false) 결과에 따라 다음과 같이 템플릿의 표시를 분리 할 수 ​​있습니다.

1
2
3
4
5
<!--{if $tpl_login}-->
ログイン中です。
<!--{else}-->
ログインしていません。
<!--{/if}-->

그런데, 이것을 특정 페이지에 한정하지 않고 어떤 페이지에서도 사용할 수 있도록하자.

페이지 볼 때마다 호출되는 LC_Page라는 기본 클래스 LC_Page (data/class/pages/LC_Page.php)가 있습니다. 그 확장 클래스인 LC_Page_Ex (data/class_extends/page_extends/LC_Page_Ex.php)에 다음과 같은 코드를 추가합니다.

1
2
3
4
5
6
7
8
9
10
public function init()
{  
    parent::init();
    // ログイン判定
    $objCustomer = new SC_Customer_Ex();
    if ($objCustomer->isLoginSuccess() === true) {
        $this->tpl_login = true;
    }  

이제 어떤 페이지에서나 tpl_login에 로그인 판정 결과가 저장 되도록 되었습니다.

마찬가지로 LC_Page_Ex에 어떤 처리든 추가하면 전체 페이지 공통으로 정보를 설정하는 것이 가능합니다.  

알아두면 유용한 곳이 많을 듯합니다.

Facebook [ja]コメント 


  1. EC-CUBE에서 모든 페이지에서 로그인 체크하기

    EC-CUBE에서 모든 페이지에서 로그인 체크하기

    EC-CUBE는 Ver 2.12.6 환경입니다. 지정 방법 EC-CUBE는 로그인 판정 결과를 tpl_login라는 변수로 설정하고 일부 페이지가 기본적으로 존재합니다. 예를 들어, 아래와 같이 소스를 grep하면 tpl_login에 값을 설정하는 부분을 찾을 수 있습니다. 1 2 3 4 5 6 ...
    Date2019.11.11 CategoryEC-CUBE 2.x Views467
    Read More
  2. EC CUBEで商品ごとに支払い方法を簡単に分ける

    EC CUBEで支払い方法を分けるのに大きなカスタマイズが必要だと思っていましたが、 以下の設定で簡単に振り分けが出来ましたのでご紹介します。 まずEC CUBE管理画面にログインし、システムデータ>マスターデータに進みます。 マスターデータから「mtb_produc...
    Date2019.10.28 CategoryEC-CUBE 2.x Views680
    Read More
  3. EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法

    EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法

    今お仕事で関わっているEC-CUBEですが、ネット上にはまだまだ情報が少ないです。 例えばプラグイン作成でオリジナルフォームを作っても、SC_FormParamクラスを使って、どうやってチェックしたらいいのか調べてもなかなか出て来ません。 そこで私が独自で調べた...
    Date2019.10.03 CategoryEC-CUBE 2.x Views135
    Read More
  4. 商品数や階層に関係なく全カテゴリーを表示させる方法

    EC-CUBEの備忘録。 デフォルトのテンプレートだとサイドに表示されている商品カテゴリーですが、商品登録がない場合はカテゴリー名が表示されず、商品が登録されていたとしても親カテゴリーのページでなければ子カテゴリー名は表示されないようになっています...
    Date2019.04.10 CategoryEC-CUBE 2.x Views268
    Read More
  5. 商品名などで長くなったテキストを省略する方法

    引き続きEC-CUBEの備忘録です。 商品のタイトルや紹介文が指定した文字数以上になったときに「...」などを表示して、見栄えを揃える方法です。 jQueryを使うとかCSSのtext-overflowなんかでも同じ事はできますが、Smartyを使って実装するものになります。 ※EC-...
    Date2019.04.10 CategoryEC-CUBE 2.x Views60
    Read More
  6. サイトデザインをPCで統一させる方法

    EC-CUBEはもともとスマートフォンやモバイル用のテンプレートが用意されており、それぞれのデバイスで閲覧すると各テンプレートに振り分けらるようになっているのですが、それを無効にする方法です。 この機能自体は良いと思うのですが、例えばモバイルまで手...
    Date2019.04.10 CategoryEC-CUBE 2.x Views64
    Read More
  7. 商品ステータスを変更・追加する方法

    EC-CUBE自体をまだあまり触ったこともなければ、そんなに頻繁に使わないのもあって、しばらくすると簡単なことでもいろいろと忘れてしまうので備忘録。 デフォルトだと「NEW」とか「残りわずか」などで登録されている商品ステータスを任意のものに変更・追加す...
    Date2019.04.10 CategoryEC-CUBE 2.x Views73
    Read More
Board Pagination Prev 1 Next
/ 1