これもプラグインによる機能追加。
プラグイン
3.0系|商品レビュー管理プラグイン|株式会社イーシーキューブ(EC-CUBE開発元)
参考
【3.0.15】商品レビュー管理プラグイン(株式会社ロックオン社製) | NAKWEB × EC-CUBE
カスタマイズ
設置
デフォ状態だとフリーエリアの上に設置される。
以下のタグを入れたらそこに設置される。
<!--# product-review-plugin-tag #-->
デザインとか
テンプレートに.twigが追加されないので直接いじる必要がある。
表示部分
/app/Plugin/ProductReview/Resource/template/default/product_review.twig
入力画面
/app/Plugin/ProductReview/Resource/template/default/index.twig
確認画面
/app/Plugin/ProductReview/Resource/template/default/confirm.twig
完了画面
/app/Plugin/ProductReview/Resource/template/default/complete.twig
エラー
/app/Plugin/ProductReview/Resource/template/default/error.twig
表示に関してはいいんだけど、入力以降の画面がちょっと問題。
通常ページと同じガワにはめ込んだらヘッダーとかフッターとかその他諸々がついてきてしまう。
レビューを書かせたいんだから目移りする可能性は削りたい。
それはこっちで。
商品ページのレビュー部分
投稿があろうがなかろうが「この商品のレビュー ☆☆☆☆☆」のタブが表示されてて、投稿がなければ空の★が並んでるだけだからすっごい見栄えが悪い。
というかそもそも投稿がないんだからこれ要らないよなって話でもある。
「ProductReviews|length」でレビュー数を取得できるのでifで切り替えてしまっても良いんじゃないか。
{% if ProductReviews|length > 0 %}
<!-- 投稿あり -->
{% else %}
<!-- 投稿なし -->
{% endif %}
あとレビューは青天井で表示されるため、めっちゃレビューがあった場合、展開したら「レビューを書く」のリンクがめっちゃ下になってしまう。好き好きではあるけどリンクを上にしたりとか、表示数をいじったりとかしたほうが良いかなって感じがある。「新着情報」とちょっと似た感じの悩みだわね。
作業時の注意というか。
フリーエリアタグもしくはショートコード(仮)の挿入がトリガーになって表示されるんだけど、この両方がなかった場合、detail.twig内のblock、javascriptのところにstyleがねじ込まれてjsの記述が崩壊する。
ソースを見るとわかるんだけど、ちょうど規格の設定に関わる部分が被害に合う。上から順繰りに作っていってるつもりがケツの方の未記入が原因で誤作動を起こしてテンパるっていう、注意。
追記(20200916)
テンプレートファイルを別で作成したい場合
ファイルを直接弄るのではなく、複製して原本のバックアップを取りたい場合はバックアップ用のファイル名を変更するか使用するファイル名を変更することになる。
自分は後者が主なので、そうするとControllerとEventを編集して呼び出すファイル名を変更する必要がある。
Event
/app/Plugin/ProductReview/Event/ProductReviewEventLegacy.php
の60行目を編集する。
'ProductReview/Resource/template/default/product_review.twig',
/app/Plugin/ProductReview/Event/ProductReviewEvent.php
の68行目を編集する。
$twigAppend = $twig->getLoader()->getSource('ProductReview/Resource/template/default/product_review.twig');
編集する際、複製して片方をコメントアウトして、コメントアウトしてない方のファイル名を変更する。
Controller
/app/Plugin/ProductReview/Controller/ProductReviewController.php
を編集する。
70行目の
return $app['twig']->render('ProductReview/Resource/template/default/confirm.twig', array(
121行目の
return $app->render('ProductReview/Resource/template/default/index.twig', array(
139行目の
return $app['view']->render('ProductReview/Resource/template/default/complete.twig', array('id' => $id));
151行目の
return $app->render('ProductReview/Resource/template/default/error.twig');
をそれぞれEventと同じように複製してコメントアウトしてリネームして保存して上書き。
コメント
こんにちは。レビュープラグインの仕組み等が知りたくて、辿り着きました。
結構参考になりました。普段は商品詳細ページのdetail.twigにコメントが挿入される仕組みだと思いますが、一覧ページlist.twigには表示できないのでしょうか?
コメントありがとうございます。
端的に言うとわかりません。
ですが、不可能じゃないと思います。
商品情報(IDとか)をトリガーにして該当商品のレビューを表示・投稿してるはずなので、それをlist.twig上でできるようにいじればいいのではないでしょうか。