バージョン選択

フォーラム

メニュー

オンライン状況

81 人のユーザが現在オンラインです。 (69 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 81
もっと...

サイト内検索

機能要望 > フロント機能 > 携帯でのログアウト

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sumida
投稿日時: 2013/7/15 18:31
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
携帯でのログアウト
PCの仕様にしています。(スマホの仕様にはなっていません。)


チケット http://svn.ec-cube.net/open_trac/ticket/2204 にある携帯でのログアウトをやってみました。
「別になくてもいいかな」と思いましたが、PC、スマホで動作している機能なので、ロジック部分はすでに存在している訳で。

ただし、ソースコードの他に、 dtb_blocテーブル にブロックを追加し、レイアウト設定をする必要があります。

INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg) VALUES (1, ?, 'ログイン', 'login.tpl', 'login', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'frontparts/bloc/login.php', 0);
INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg) VALUES (1, ?, '【ヘッダー】ログイン', 'login_header.tpl', 'login_header', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'frontparts/bloc/login_header.php', 0);

なお、insert文内の「?」部分は、各自のデータベースに合わせ端末ID(device_type_id)内で重複しない番号を設定します。

data/class/pages/frontparts/LC_Page_FrontParts_LoginCheck.php

                // 入力値のエラーチェック
                $objFormParam->trimParam();
                $objFormParam->toLower('login_email');
                $arrErr = $objFormParam->checkError();
// added
                if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
                    // 携帯
                    $arrErr2 = $this->lfCheckError($objFormParam,$objFormParam->getValue('login_phone_id'));
                    $arrErr = array_merge($arrErr, $arrErr2);
                }
// added

                // エラーの場合はエラー画面に遷移


    function lfInitParam(&$objFormParam) {
        $objFormParam->addParam('記憶する', 'login_memory', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
// added
    if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
        // 携帯
        $objFormParam->addParam('端末製造番号', 'login_phone_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
        $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('MAX_LENGTH_CHECK'));
        $objFormParam->addParam('パスワード', 'login_pass', PASSWORD_MAX_LEN, '', array('MAX_LENGTH_CHECK'));
    } else {
// added
        $objFormParam->addParam('メールアドレス', 'login_email', MTEXT_LEN, 'a', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
        $objFormParam->addParam('パスワード', 'login_pass', PASSWORD_MAX_LEN, '', array('EXIST_CHECK', 'MAX_LENGTH_CHECK'));
// added
    }
// added
    }


// added
    /**
     * 入力エラーのチェック.
     *
     * @param SC_FormParam $objFormParam パラメーター管理クラス
     * @param $login_phone_id 端末製造番号使用の有無
     * @return array $arrErr エラーメッセージ配列
     */
    function lfCheckError(&$objFormParam, $login_phone_id) {
        $arrParams = $objFormParam->getHashArray();
        $objError = new SC_CheckError_Ex($arrParams);

        // パラメーター情報の初期化
        if ($login_phone_id == '1') {
            $objError->doFunc(array('パスワード', 'login_pass'), array('EXIST_CHECK'));
        } else {
            $objError->doFunc(array('メールアドレス', 'login_email'), array('EXIST_CHECK'));
            $objError->doFunc(array('パスワード', 'login_pass'), array('EXIST_CHECK'));
        }

        return $objError->arrErr;
    }
// added


新規:data/Smarty/templates/mobile/frontparts/bloc/login_header.tpl

<!--{strip}-->
        <form name="header_login_form" id="header_login_form" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" utn>
            <!--{if $tpl_login}-->
                <input type="hidden" name="mode" value="logout" />
            <!--{else}-->
                <input type="hidden" name="mode" value="login" />
            <!--{/if}-->
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
            <input type="hidden" name="url" value="<!--{$smarty.server.REQUEST_URI|h}-->" />
            [emoji:116]
            <!--{if $tpl_login}-->
                ようこそ <!--{$tpl_name1|h}--> <!--{$tpl_name2|h}--> 様&nbsp;
                <!--{if $smarty.const.USE_POINT !== false}-->
                    / 所持ポイント:<!--{$tpl_user_point|number_format|default:0}--> pt&nbsp;&nbsp;<br>
                <!--{/if}-->
                <!--{if !$tpl_disable_logout}-->
                    <input type="submit" name="logout" value="ログアウト">
                <!--{/if}-->
            <!--{else}-->
                <!--{assign var=key value="login_email"}-->
                <font color="#FF0000"><!--{$arrErr[$key]}--></font>
                メールアドレス
                <input type="text" name="<!--{$key}-->" value="<!--{$tpl_login_email|h}-->" maxlength="<!--{$arrForm[$key].length}-->" istyle="3" /><br>
<!--{*
                <input type="checkbox" name="login_memory" id="header_login_memory" value="1" <!--{$tpl_login_memory|sfGetChecked:1}--> />記憶<br>
*}-->
                <input type="checkbox" name="login_phone_id" id="login_phone_id" value="1" <!--{$tpl_login_phone_id|sfGetChecked:1}--> />
                簡単ログインを使用<br>
                <!--{assign var=key value="login_pass"}-->
                <font color="#FF0000"><!--{$arrErr[$key]}--></font>
                パスワード
                <input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" istyle="3" /><br>
                <input type="submit" name="login" value="ログイン" />
                <a href="<!--{$smarty.const.HTTPS_URL}-->forgot/<!--{$smarty.const.DIR_INDEX_PATH}-->">パスワードを忘れた方</a>
            <!--{/if}-->
        </form>

        <hr>
<!--{/strip}-->


新規:data/Smarty/templates/mobile/frontparts/bloc/login.tpl

<!--{strip}-->
    [emoji:116]ログイン<br>
        <form name="login_form" id="login_form" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" utn>
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
            <!--{if $tpl_login}-->
                <input type="hidden" name="mode" value="logout" />
            <!--{else}-->
                <input type="hidden" name="mode" value="login" />
            <!--{/if}-->
            <input type="hidden" name="url" value="<!--{$smarty.server.REQUEST_URI|h}-->" />
            <!--{if $tpl_login}-->
                ようこそ <!--{$tpl_name1|h}--> <!--{$tpl_name2|h}--> 様<br>
                <!--{if $smarty.const.USE_POINT !== false}-->
                    所持ポイント:<!--{$tpl_user_point|number_format|default:0}--> pt<br>
                <!--{/if}-->
                <!--{if !$tpl_disable_logout}-->
                    <center><input type="submit" name="logout" value="ログアウト"></center>
                <!--{/if}-->
            <!--{else}-->
                メールアドレス<br>
                <!--{assign var=key value="login_email"}-->
                <font color="#FF0000"><!--{$arrErr[$key]}--></font>
                <input type="text" name="<!--{$key}-->" value="<!--{$tpl_login_email|h}-->" maxlength="<!--{$arrForm[$key].length}-->" istyle="3" /><br>
<!--{*
                <input type="checkbox" name="login_memory" id="login_memory" value="1" <!--{$tpl_login_memory|sfGetChecked:1}--> />
                コンピューターに記憶する<br>
*}-->
                <input type="checkbox" name="login_phone_id" id="login_phone_id" value="1" <!--{$tpl_login_phone_id|sfGetChecked:1}--> />
                簡単ログインを使用する<br>
                パスワード<br>
                <!--{assign var=key value="login_pass"}-->
                <font color="#FF0000"><!--{$arrErr[$key]}--></font>
                <input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" istyle="3" /><br>
                <a href="<!--{$smarty.const.HTTPS_URL}-->forgot/<!--{$smarty.const.DIR_INDEX_PATH}-->">パスワードをお忘れの方はこちら</a><br>
                <center><input type="submit" name="login" value="ログイン" /></center>
            <!--{/if}-->
        </form>

        <hr>
<!--{/strip}-->

sumida
投稿日時: 2013/7/16 22:41
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 携帯でのログアウト
追記:7/22 肝心のログアウトが抜けていました。

スマホ仕様にする場合、以下のようにテンプレートを変更する。
data/Smarty/templates/mobile/frontparts/bloc/login_header.tpl

<!--{strip}-->

    <!--{if $tpl_login}-->
        ようこそ <a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php?<!--{$smarty.const.SID}-->" utn><!--{$tpl_name1|h}--> <!--{$tpl_name2|h}-->さん</a>&nbsp;
        <!--{if $smarty.const.USE_POINT !== false}-->
            所持ポイント<!--{$tpl_user_point|number_format|default:0}-->pt
        <!--{/if}-->
      <!--{if !$tpl_disable_logout}-->
        <form name="login_form" id="login_form" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" utn>
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
            <input type="hidden" name="mode" value="logout" />
            <input type="hidden" name="url" value="<!--{$smarty.server.REQUEST_URI|h}-->" />
            <center><input type="submit" name="logout" value="ログアウト"></center>
        </form>
      <!--{/if}-->
    <!--{else}-->
        ようこそ ゲストさん&nbsp;
        <a href="<!--{$smarty.const.HTTPS_URL}-->entry/kiyaku.php?<!--{$smarty.const.SID}-->" utn>新規会員登録</a>
    <!--{/if}-->

        <hr>
<!--{/strip}-->


data/Smarty/templates/mobile/frontparts/bloc/login.tpl

<!--{strip}-->

    <!--{if $tpl_login}-->
        ようこそ <a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php?<!--{$smarty.const.SID}-->" utn><!--{$tpl_name1|h}--> <!--{$tpl_name2|h}-->さん</a><br>
        <!--{if $smarty.const.USE_POINT !== false}-->
            所持ポイント:<!--{$tpl_user_point|number_format|default:0}--> pt<br>
        <!--{/if}-->
      <!--{if !$tpl_disable_logout}-->
        <form name="login_form" id="login_form" method="post" action="<!--{$smarty.const.HTTPS_URL}-->frontparts/login_check.php" utn>
            <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
            <input type="hidden" name="mode" value="logout" />
            <input type="hidden" name="url" value="<!--{$smarty.server.REQUEST_URI|h}-->" />
            <center><input type="submit" name="logout" value="ログアウト"></center>
        </form>
      <!--{/if}-->
    <!--{else}-->
        ようこそ ゲストさん<br>
        <a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php?<!--{$smarty.const.SID}-->" utn>ログイン</a><br>
    <!--{/if}-->
    <a href="<!--{$smarty.const.HTTPS_URL}-->mypage/login.php?<!--{$smarty.const.SID}-->" utn>MYページ</a><br>
    <a href="<!--{$smarty.const.MOBILE_CART_URLPATH|h}-->">かごの中を見る</a>

        <hr>
<!--{/strip}-->

sumida
投稿日時: 2013/10/1 21:38
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 携帯でのログアウト
下記のケースの場合、ログイン状態の判定ができないことが判明しました。

(1) PCから会員登録(PCメールアドレス)
(2) 携帯からPCメールアドレスでログイン
(3) 携帯メールアドレスは、登録しない。

data/class/pages/frontparts/bloc/LC_Page_Frontparts_Bloc_Login.php

    public function action()
    {
        $objCustomer = new SC_Customer_Ex();
        // クッキー管理クラス
        $objCookie = new SC_Cookie_Ex();

        // ログイン判定
// chenged
//        if ($objCustomer->isLoginSuccess()) {
// chenged
        if ($objCustomer->isLoginSuccess(true)) {
// chenged
            $this->tpl_login = true;

この変更で、OKなようです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,860名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.