こんな感じ(行頭+が追加行)でsrc/Eccube/Controller/ProductController.phpに処理をいれてやると、
twigの方でproduct_class_string1とproduct_class_string2が使えるようになります。
$is_favorite = $app['eccube.repository.customer_favorite_product']->isFavorite($Customer, $Product);
}
+ $arrCc1 = array();
+ $arrCc2 = array();
+ $product_class_string1 = $Product->getClassName1();
+ $product_class_string2 = $Product->getClassName2();
+ foreach ($Product->getProductClasses() as $ProductClass) {
+ $ClassCategory1 = $ProductClass->getClassCategory1();
+ if ($ClassCategory1) {
+ $cc1name = $ClassCategory1->getName();
+ $cc1id = $ClassCategory1->getId();
+ if (!array_key_exists('key'.$cc1id, $arrCc1)) {
+ if (empty($arrCc1)) {
+ $product_class_string1 .= ':'. $cc1name;
+ } else {
+ $product_class_string1 .= '/'. $cc1name;
+ }
+ $arrCc1 = array_merge($arrCc1, array('key'.$cc1id => $cc1name));
+ }
+ $ClassCategory2 = $ProductClass->getClassCategory2();
+ if ($ClassCategory2) {
+ $cc2name = $ClassCategory2->getName();
+ $cc2id = $ClassCategory2->getId();
+ if (!array_key_exists('key'.$cc2id, $arrCc2)) {
+ if (empty($arrCc2)) {
+ $product_class_string2 .= ':'. $cc2name;
+ } else {
+ $product_class_string2 .= '/'. $cc2name;
+ }
+ $arrCc2 = array_merge($arrCc2, array('key'.$cc2id => $cc2name));
+ }
+ }
+ }
+ }
return $app->render('Product/detail.twig', array(
'title' => $this->title,
'subtitle' => $Product->getName(),
'form' => $form->createView(),
'Product' => $Product,
'is_favorite' => $is_favorite,
+ 'product_class_string1' => $product_class_string1,
+ 'product_class_string2' => $product_class_string2,
));
}
twig側
{% if product_class_string1 %}
{{ product_class_string1 }}
{% endif %}
{% if product_class_string2 %}
<br>
{{ product_class_string2 }}
{% endif %}
ざざざっと書いちゃったのでプログラムには改善の余地はあるかも知れませんが、こんな感じっていうイメージが伝わると嬉しいです。