質問 > フロント機能 > ログイン画面を表示せずにゲスト購入画面に移動したい |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
umebius |
投稿日時: 2017/4/5 23:07
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい 解決されて良かったです。
index_dev.phpはまだまだあまり活用されていないようです。
|
lightning |
投稿日時: 2017/4/5 2:18
対応状況: −−−
|
新米 登録日: 2017/3/12 居住地: 投稿: 10 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい ありがとうございます。
デバッグモードにて原因が判明しました。 恥ずかしながら、__construct にて $this->app を定義していないのが原因でした。 おかげさまで思い通りの動作ができるようになりました。 またデバッグモードを知らなかったため大変勉強になりました。 ありがとうございます。 |
umebius |
投稿日時: 2017/4/4 2:14
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい 私の3.0.13 では問題なく動くのですが、だめでしたか。環境は違うので一概には言えませんが
3.0.13新規インストールでカスタマイズなし、他にプラグインなしということですよね? 真っ白な画面というのは、PHPエラーが発生しているのか空白のレスポンスが返っているかどちらかだと思いますが、現在デバッグモードになっていなければデバッグモードで試してみていただけませんでしょうか。 http://examle.com/ec-cube/html/index_dev.php/cartからアクセス デバッグモードにしても変わらなければ、onFromLoginUrlInit 内にexit("TEST");とでも書いて、そのメソッドが呼ばれているかどうか確認してみていただけませんでしょうか。
|
lightning |
投稿日時: 2017/4/4 0:32
対応状況: −−−
|
新米 登録日: 2017/3/12 居住地: 投稿: 10 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい ありがとうございます。試してみました。
残念ながら画面は真っ白な状態(これまでと同じ)になります。 異なる点としては、ログ表示のところで 302 となっていた部分が 200 になりました。 [2017-04-04 00:27:51,398540] eccube.INFO [413f4293] [91fc3c18] [2] [LogListener:logResponse:96] - < 200 [GET, /ec-cube/html/admin/setting/system/log |
umebius |
投稿日時: 2017/4/3 23:06
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい eccube.event.route.shopping_login.requestイベントを利用するのであれば、$eventはEventArgsではなくGetResponseEventですが、これはエラーになっていませんか?
下記で問題ないと思いますが。
|
lightning |
投稿日時: 2017/4/3 22:26
対応状況: −−−
|
新米 登録日: 2017/3/12 居住地: 投稿: 10 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい ご紹介いただいたサイトを参考にファイルを作成してみました。
ファイル:app/Plugin/CustomEntry/ServiceProvider.php <?php namespace Plugin\CustomEntry\ServiceProvider; use Eccube\Application; use Silex\Application as BaseApplication; use Silex\ServiceProviderInterface; class CustomEntryServiceProvider implements ServiceProviderInterface { public function register(BaseApplication $app) { // 管理画面定義 $admin = $app['controllers_factory']; // 強制SSL if ($app['config']['force_ssl'] == Constant::ENABLED) { $admin->requireHttps(); } // フロント画面定義 $front = $app['controllers_factory']; // 強制SSL if ($app['config']['force_ssl'] == Constant::ENABLED) { $front->requireHttps(); } $front->match('/shopping/login', '\Eccube\Controller\ShoppingController::nonmember')->bind('custom_entry_nonmember'); return; } public function boot(BaseApplication $app) { } } こちらは画面が変更されず通常のログイン画面が表示されます。 下記の部分をいくつか試してみました。 $front->match('/shopping/login', '\Eccube\Controller\ShoppingController::nonmember')->bind('custom_entry_nonmember'); $front->match('/shopping/login', '\Eccube\Controller\ShoppingController::nonmember')->bind('shopping_nonmember'); $front->match('/shopping/login', '\Eccube\Controller\ShoppingController::nonmember')->bind('shopping_login'); いずれも通常のlogin画面が表示されます。 |
lightning |
投稿日時: 2017/4/3 22:07
対応状況: −−−
|
新米 登録日: 2017/3/12 居住地: 投稿: 10 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい ありがとうございます。
$response = $this->app->redirect($this->app->url('shopping_nonmember')); $event->setResponse($response); のように変更してみたのですが、状況変わらずでした。 URLは html/shopping/login になっていて、 画面が真っ白になった状態です。 |
hmorita_j |
投稿日時: 2017/4/3 16:33
対応状況: −−−
|
長老 登録日: 2017/3/3 居住地: 沈黙の巨大都市松戸 投稿: 222 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい http://qiita.com/poego/items/c78474db9fc5c416c702
こちらの記事が参考になると思います。 |
hmorita_j |
投稿日時: 2017/4/3 16:29
対応状況: −−−
|
長老 登録日: 2017/3/3 居住地: 沈黙の巨大都市松戸 投稿: 222 |
Re: ログイン画面を表示せずにゲスト購入画面に移動したい 引用:
$this->app->urlの指定の仕方が悪いのかと思うのですが、 「shopping_nonmember」になります。 src/Eccube/ControllerProvider/FrontControllerProvider.phpをご参照ください。 |
lightning |
投稿日時: 2017/4/3 16:24
対応状況: −−−
|
新米 登録日: 2017/3/12 居住地: 投稿: 10 |
ログイン画面を表示せずにゲスト購入画面に移動したい ▼テンプレート
[EC-CUBE] 3.0.13 新規インストール [レンタルサーバ] sakura [OS] Apache/2.2.31 [PHP] 5.6.30 [データベース] SQLite version 3.8.10.2(テストサイトのため) [WEBサーバ] FreeBSD 9.1-RELEASE-p24 [ブラウザ] safari 10.1 [導入プラグインの有無] 自作 [カスタマイズの有無] 無し [現象] ログイン画面を表示せずにゲスト購入画面に移動したい 実現したいことはこちらのURLの内容と同じです。 EC-CUBE3でも、会員登録機能を無効に! | GeekStyleJapan 実際にテストしてうまくいくことが確認できました。 この改造をプラグインで実現したいと思っています。 動作としては、カート画面の「レジに進む」をクリックすると「お客様情報の入力」に移動したいと思っています。 /html/cart → /html/shopping/login (リダイレクト) → /html/shopping/nonmember 下記のようなコードを作成しました。 event.yml eccube.event.route.shopping_login.request: - [onFromLoginUrlInit, NORMAL] event.php /** * ログイン画面をリダイレクトしてお客様情報の入力に移動 * @param EventArgs $event */ public function onFromLoginUrlInit(EventArgs $event) { $response = $this->app->redirect($this->app->url('nonmember')); $event->setResponse($response); return; } ログ表示は下記のようになっていました [2017-04-03 16:15:23,164998] eccube.INFO [551863bc] [a959433a] [NULL] [LogListener:logResponse:94] - < 302 http://examle.com/ec-cube/html/shopping/login [GET, /ec-cube/html/shopping, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:22,915555] eccube.INFO [551863bc] [a959433a] [NULL] [LogListener:logRequest:83] - > GET /ec-cube/html/shopping [GET, /ec-cube/html/shopping, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:22,914411] eccube.INFO [551863bc] [a959433a] [NULL] [AnonymousAuthenticationListener:handle:62] - Populated the TokenStorage with an anonymous Token. [GET, /ec-cube/html/shopping, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:22,908266] eccube.INFO [NULL] [a959433a] [NULL] [RouterListener:onKernelRequest:146] - Matched route "shopping". {"route_parameters":{"_controller":"\\Eccube\\Controller\\ShoppingController::index","_route":"shopping"},"request_uri":"http://examle.com/ec-cube/html/shopping"} [GET, /ec-cube/html/shopping, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:22,001024] eccube.INFO [551863bc] [f8e1cb4b] [NULL] [LogListener:logResponse:94] - < 302 http://examle.com/ec-cube/html/shopping [GET, /ec-cube/html/cart/buystep, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:21,832205] eccube.INFO [551863bc] [f8e1cb4b] [NULL] [LogListener:logRequest:83] - > GET /ec-cube/html/cart/buystep [GET, /ec-cube/html/cart/buystep, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:21,830875] eccube.INFO [551863bc] [f8e1cb4b] [NULL] [AnonymousAuthenticationListener:handle:62] - Populated the TokenStorage with an anonymous Token. [GET, /ec-cube/html/cart/buystep, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:21,824867] eccube.INFO [NULL] [f8e1cb4b] [NULL] [RouterListener:onKernelRequest:146] - Matched route "cart_buystep". {"route_parameters":{"_controller":"\\Eccube\\Controller\\CartController::buystep","_route":"cart_buystep"},"request_uri":"http://examle.com/ec-cube/html/cart/buystep"} [GET, /ec-cube/html/cart/buystep, 42.144.157.111, http://examle.com/ec-cube/html/cart, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:14,466660] eccube.INFO [551863bc] [e389e7fe] [2] [LogListener:logResponse:96] - < 200 [GET, /ec-cube/html/admin/setting/system/log, 42.144.157.111, http://examle.com/ec-cube/html/admin/store/plugin, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:14,106896] eccube.INFO [551863bc] [e389e7fe] [2] [LogListener:logRequest:83] - > GET /ec-cube/html/admin/setting/system/log [GET, /ec-cube/html/admin/setting/system/log, 42.144.157.111, http://examle.com/ec-cube/html/admin/store/plugin, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] [2017-04-03 16:15:14,080902] eccube.INFO [NULL] [e389e7fe] [NULL] [RouterListener:onKernelRequest:146] - Matched route "admin_setting_system_log". {"route_parameters":{"_controller":"\\Eccube\\Controller\\Admin\\Setting\\System\\LogController::index","_route":"admin_setting_system_log"},"request_uri":"http://examle.com/ec-cube/html/admin/setting/system/log"} [GET, /ec-cube/html/admin/setting/system/log, 42.144.157.111, http://examle.com/ec-cube/html/admin/store/plugin, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30] $this->app->urlの指定の仕方が悪いのかと思うのですが、 このURLの指定がどのようなルールになっているのかよくわかりませんでした。 上記のような nonmember の他 shopping/nonmember もうまく行きませんでした。 ec cube プラグイン仕様書にも記載がないので、このあたりの情報があるサイトがありましたら教えていただけると助かります。 よろしくお願いします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |