質問 > フロント機能 > 新着商品自動表示プラグインにて表示されない |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
siruci |
投稿日時: 2019/3/27 12:18
対応状況: −−−
|
新米 登録日: 2019/3/24 居住地: 投稿: 4 |
Re: 新着商品自動表示プラグインにて表示されない 実に丁寧なご回答、感謝申し上げます。
EC-CUBEプラグイン実装のメカニズムを詳細にご教示頂き、助かります。 かしこまりました、教えて頂いたヒントをもとに、 深堀してみたく思います。 キャッシュはクリアしてみたのですが変わりませんでした。 進展あればこちらにてご報告するよういたします。 ありがとうございました。 |
468 |
投稿日時: 2019/3/27 9:57
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 新着商品自動表示プラグインにて表示されない あと、キャッシュに何か問題があるかもしれませんので、
一度、コンテンツ管理>キャッシュクリアを実行されてみては如何でしょうか?
|
468 |
投稿日時: 2019/3/27 9:56
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 新着商品自動表示プラグインにて表示されない まず、コントローラーを呼び出す設定についてですが、
ルーティングを以下のサービスプロバイダにて定義しております。 app/Plugin/Shiro8NewProductBlock3/ServiceProvider/Shiro8NewProductBlock3ServiceProvider.php プラグインのブロックのルーティング名の定義が↓のようになっています。 block_plg_shiro8_new_product_block ECCUBEの仕様として、配置されたブロックを呼び出すblock.twigの記述を確認すると、 dtb_block.logic_flgが1の場合、 'block_' と dtb_block.file_name を文字蓮件したものを利用してルーティングを呼び出しています。 その為、プラグイン内で定義したルーティング名とblock.twigで呼び出そうとするルーティング名が一致して、 /app/Plugin/Shiro8NewProductBlock3/Controller/Block/Shiro8NewProductController.php が呼び出されるという仕様になっております。 dtb_pluginテーブルのclass_nameカラムは空で問題無いかと思います。 dtb_plugin_event_handlerにもレコードは登録されません。 上記のブロックの呼び出しのみで動作するようになっております。
|
siruci |
投稿日時: 2019/3/27 6:28
対応状況: −−−
|
新米 登録日: 2019/3/24 居住地: 投稿: 4 |
Re: 新着商品自動表示プラグインにて表示されない 丁寧なご回答、アドバイスありがとうございます。
プラグインをインストールしたあとにカスタマイズはしておらず、 カスタマイズされた環境にインストールした状態でございます。 仰るとおり、プラグインのtwigのHTMLタグは出力されており、 productのarrayが空っぽなので、中身が出力されていない状態でもあります。 dtb_blockテーブルを確認したところ、他のblockデータと特に変わりないデータとなっておりました。 block_id: 40 device_type_id: 10 block_name: 新着商品ブロック file_name: plg_shiro8_new_product_block create_date: 2019-03-24 08:41:57 update_date: 2019-03-24 08:41:57 logic_flg: 1 deletable_flg: 0 デフォルト環境での試行、お手数おかけし恐縮です。 Shiro8NewProductController.php がどこから呼ばれて動くのかがわからず、 そのへんが判ればデバッグで追いかけられるかと思いますが、 EC-CUBEの基本的な作りを理解しておらず、何かヒントを頂けるかの質問でございました。 もう一点だけご回答いただけると幸いです。 dtb_plugin というテーブルに、 code: Shiro8NewProductBlock3 というレコードが一件ございました。 class_name というカラムが空ですが、これはこれで合ってますでしょうか? また、dtb_plugin_event_handler というテーブルがございますが、そちらには新着商品プラグインのレコードがない状態が正しいでしょうか? ※例えば、別のプラグインで動いている「GmoPaymentGateway」のレコードはいくつかございました。 たびたびお手数おかけいたします。 よろしくお願いいたします。 |
468 |
投稿日時: 2019/3/26 9:18
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 新着商品自動表示プラグインにて表示されない プラグインをインストールされた後、プラグイン内のファイル自体をカスタマイズされている状況でしょうか?
それともカスタマイズされた環境に、インストールしただけという事でしょうか? htmlにコメント部分(プラグイン内のtwig)が出力されている事から 最終的にどこかのコントローラー(php)は処理されているのではないかと思いますが、 見当がつかない状況です。 呼び出すコントローラーを変更されているのであれば、dtb_blockテーブルのデータを直接編集されたりしているのではないかと思います。 一応、デフォルト環境でインストールを行い、コントローラーファイルにデバッグ用の記述を追記すると、 ブロックを表示するタイミングでデバッグ用の文字を表示し、残りの処理が止まりました。
|
siruci |
投稿日時: 2019/3/25 17:57
対応状況: −−−
|
新米 登録日: 2019/3/24 居住地: 投稿: 4 |
Re: 新着商品自動表示プラグインにて表示されない 早速のご回答ありがとうございます。助かります。
お客様のEC-CUBEの環境を拡張する案件を引き受けており、 今回、ご要望があって、新着商品のプラグインを導入する運びと なりましたが、元々、前任担当の方によりカスタマイズは入っておりましたうえ、私のほうでもカスタマイズを入れてはおります。 print "Shiro8NewProductController"; exit; と、Shiro8NewProductController.php の public function index(Application $app) { 直後に入れてみましたが、 デバッグ文は出力されず、普通にトップページが表示されました。 つまり、このphp自体、実行されていないようです。 プラグイン導入はうまく行っていて、 このphpが動かないとなると、 どこかで抑止している可能性があるかと推測しますが、 思い付く箇所などございましたら、ご教示頂けると助かります。 あるいは、可能な範囲でデバッグの追いかけ方を教えていただけると幸いです。 お手数おかけして恐縮ですが、 よろしくお願いいたします。 |
468 |
投稿日時: 2019/3/25 8:10
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 新着商品自動表示プラグインにて表示されない プラグイン以外にカスタマイズ等は行われていない環境という事でよろしかったでしょうか?
コントローラーファイルにデバッグ用の記述を追加されたという事ですが、 print "Shiro8NewProductController"; の次に exit(); も追記されるとどうなるでしょうか? twigでの商品件数を表示させて「0」と表示されていますので、 コントローラーやtwigの処理は処理されているかと思うのですが、 デバッグ用の文字が表示されるかどうか再度、確認させていただきたいと思います。
|
siruci |
投稿日時: 2019/3/24 9:09
対応状況: 確認中
|
新米 登録日: 2019/3/24 居住地: 投稿: 4 |
新着商品自動表示プラグインにて表示されない ▼テンプレート
[EC-CUBE] EC-CUBE 3.0.13 [レンタルサーバ] AWS [OS] linux [PHP] php5.4.16 [データベース] MySQL 5.7.12 [WEBサーバ] Apache [ブラウザ] Chrome [導入プラグインの有無] 新着商品自動表示プラグイン [現象] シロハチ様に確認したく投稿致します。 新着商品自動表示プラグインをサイトに導入し、 インストールは成功、有効化して、ページ編集にてトップページのレイアウト編集にて、新着商品ブロックを配置し登録。 商品マスタには多数の商品が登録済の状態で、画面表示しても新着商品が表示されず、HTMLソース表示すると、 <!-- ▼shiro8_new_product▼ --> <div id="contents_top"> <div id="item_list"> <div class="row"> </div> </div> </div> <!-- ▲shiro8_new_product▲ --> とだけ出力されておりました。 そこで、plg_shiro8_new_product_block.twig の {% if Products|length > 0 %} の直前に1行追加して、 {{ Products|length }} とやってみると、結果は「0」でした。 また、 eccube/app/Plugin/Shiro8NewProductBlock3/Controller/Block/Shiro8NewProductController.php のソースにデバッグ文を1行追加して、 public function index(Application $app) の処理の先頭に、 print "Shiro8NewProductController"; と入れてみましたが、このデバッグ行が画面表示の際に出力されません。 シロハチ様、お手数ですが、 思い当たる原因がありましたらご教示頂けると助かります。 よろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |