質問 > その他 > ECCUBE4でTOPページにblockで購入履歴を置きたい |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ryo0429 |
投稿日時: 2022/6/7 12:27
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2022/6/7 居住地: 投稿: 1 |
ECCUBE4でTOPページにblockで購入履歴を置きたい ▼テンプレート
[EC-CUBE] 4.X系 [レンタルサーバ] カゴヤのサーバー [OS] Windows10 [ブラウザ] Chrome [導入プラグインの有無] [カスタマイズの有無] [現象] block管理で作成した購入履歴を表示するブロック(history)を作成して、レイアウト管理にてTOPページにこのブロックを置いて購入履歴を表示したいと考えています。 作成予定のhistoryブロックについてはユーザーがログインしたときにマイページの下に出る購入履歴をそのまま持ってきたいと思っています。ブロックのhistoryでそのコードを記述しても、動きませんでした。コードの修正の仕方を教えていただけますでしょうか? 具体的なコード ディレクトリー:/public_html/ECCUBE/src/Eccube/Resource/template/default/Mypage/index.twig <div class="ec-mypageRole"> {% if pagination.totalItemCount > 0 %} <p class="ec-para-normal">{{ '%count%件の履歴があります'|trans({'%count%':pagination.totalItemCount}) }}</p> {% for Order in pagination %} <div class="ec-historyRole"> <div class="ec-historyRole__contents"> <div class="ec-historyRole__header"> <div class="ec-historyListHeader"> <p class="ec-historyListHeader__date">{{ Order.order_date|date_sec }}</p> <dl class="ec-definitions"> <dt>{{ 'ご注文番号'|trans }}</dt> <dd>{{ Order.order_no }}</dd> </dl> {% if (BaseInfo.option_mypage_order_status_display) %} <dl class="ec-definitions"> <dt>{{ 'ご注文状況'|trans }}</dt> <dd>{{ Order.CustomerOrderStatus }}</dd> </dl> {% endif %} <p class="ec-historyListHeader__action"><a class="ec-inlineBtn" href="{{ url('mypage_history', {'order_no': Order.order_no}) }}">{{ '詳細を見る'|trans }}</a> </p> </div> </div> <div class="ec-historyRole__detail"> {% for OrderItem in Order.MergedProductOrderItems %} <div class="ec-imageGrid"> <div class="ec-imageGrid__img"> {% if OrderItem.Product is null %} <img src="{{ asset(''|no_image_product, 'save_image') }}"/> {% else %} <img src="{{ asset(OrderItem.Product.MainListImage|no_image_product, 'save_image') }}"> {% endif %} </div> <div class="ec-imageGrid__content"> <p class="ec-historyRole__detailTitle">{{ OrderItem.product_name }}</p> {% if OrderItem.class_category_name1 is not empty %} {{ OrderItem.class_category_name1 }} {% endif %} {% if OrderItem.class_category_name1 is not empty %} / {{ OrderItem.class_category_name2 }} {% endif %} <p class="ec-historyRole__detailPrice">{{ OrderItem.price_inc_tax|price }} × {{ OrderItem.quantity }}</p> </div> </div> {% endfor %} </div> </div> </div> {% endfor %} <div class="ec-pagerRole"> {% include "pager.twig" with {'pages': pagination.paginationData} %} </div> {% else %} <p class="ec-para-normal">{{ 'ご注文履歴はありません。'|trans }}</p> {% endif %} </div> </div> というこれをブロック(history)で使いたいのですが、おそらくcontroller.phpやrepository.phpが違うのでエラーは出ないのですが、pagination.totalItemCountを取得できず、すべてご注文履歴はありませんになる。のが現状です。 何卒宜しくお願い致します。 |
balisys |
投稿日時: 2022/12/5 22:37
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2020/7/5 居住地: 投稿: 295 |
Re: ECCUBE4でTOPページにblockで購入履歴を置きたい 作成したブロックに対してデータを渡すためのコントローラーは作成していますでしょうか。
作成していない場合、まず購入履歴データをブロックtwigに渡すためのコントローラーの作成が必要になります。 |
yuh |
投稿日時: 2022/12/7 12:43
対応状況: −−−
|
神 ![]() ![]() 登録日: 2013/1/9 居住地: 大阪 投稿: 1789 |
Re: ECCUBE4でTOPページにblockで購入履歴を置きたい ブロックに対してのコントローラーが無いので、それを追加しないと値が取れないので対応するコントローラーを追加してください。
|
junsan |
投稿日時: 2022/12/10 7:19
対応状況: −−−
|
新米 ![]() ![]() 登録日: 2019/1/26 居住地: 投稿: 9 |
Re: ECCUBE4でTOPページにblockで購入履歴を置きたい balisys様、yuh様がおっしゃる通り、新たにコントローラーの作成は必要です。
作成場所は以下になると思います。 app/Customize/Controller/配下 paginationを使用しているので、注文履歴をTOPページに表示した時、次のページや前のページに遷移する際、画面情報が正しく表示されなくなると思います。 ですので、新規にページ追加も必要ではないかと思います。 (TOPページを上書きする感じで) ページのコードの内容と致しまして、 {% extends 'default_frame.twig' %} {% block main %} {{ render(path('block_xxxxxxxxxx')) }} {% endblock %} コントローラーはページに対する処理を記述すれば、表示可能だと思います。 私も勉強中なので、間違っていたら申し訳ないです。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |