ECサイトでは商品があるカテゴリーに含まれるかどうかチェックして、ページごとに情報を変えるというカスタマイズを良く行います。

EC-CUBE3ではとても簡単に実現できるので、よくある確認方法をご紹介します。

Twig内だけで完結することもできるのですが、より使い回しが効くEntityにメソッドを追加の方法をとります。

src/Eccube/Entity/Product.phpにメソッド追加

 

上記メソッドを追加したことにより、Twigテンプレート内やコントローラで簡単にカテゴリーのチェックを行うことができます。

例えば商品詳細ページでは以下のように書くことが可能になります。

app/template/default/Product/detail.twig

 

実際にはあまりTwig内でカテゴリー名を使ってチェックすることはおすすめしませんが・・・。

理由はカテゴリー名は頻繁に修正が入ることと、データベースへの余分な問い合わせが発生する可能性があるためです。

カテゴリーIDは管理画面や商品一覧ページのURLで確認することができます。

EC-CUBE3をご利用の方はぜひお試しください。

 

 

関連するカスタマイズ

ポイントプラグインのポイント数を自前で取得... EC-CUBE3のポイントプラグインでは、ポイント数はplg_point_customerデータベースに保存されています。 このデータはレポジトリ$appを利用して簡単に取得可能です。 テンプレートに渡す場合、次のようなコードでポイント数を取得し、テンプレートに渡してやればページに表示す...
Your proxy directory “/var/www/src/Eccube/..... SSHからマイグレーションなどapp/consoleのコマンドを実行しようとした際に、ドクトリンのキャッシュファイルを書き込めないために発生するエラーです。 通常app/cache/doctrine/proxiesは所有者もグループもapacheとなるため、コマンドラインから他のユーザ...
Twig内で文字列の一部分を切り出す方法 Slice使用... twigテンプレート内で文字列の一部を切り出したい時があります。 そんな時はsliceフィルタを使用してtwig内だけで切り出しを実行することが可能です。 2文字目以降を切り出す(1文字目を削除) sliceフィルタの第1引数は開始位置です。 sliceフィルタにはシンタックスシ...
メーカープラグインのメーカー一覧を取得する方法... メーカープラグインを使用される方が多いと思います。 メーカーの一覧を表示したい場合は次のようにメーカープラグインのレポジトリクラスでfindByすることで取得が可能です。 Controllerなどで使える実際のコード 全件取得するのでfindByの第1引数は空の配列、第2引数はソート順...