バージョン選択

フォーラム

メニュー

オンライン状況

60 人のユーザが現在オンラインです。 (52 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 60
もっと...

サイト内検索

質問 > フロント機能 > タグの情報を元に商品情報(画像、名前など)を取得

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
densuke
投稿日時: 2018/7/26 18:22
対応状況: 解決済
半人前
登録日: 2018/7/26
居住地:
投稿: 29
タグの情報を元に商品情報(画像、名前など)を取得
▼テンプレート
[EC-CUBE] 3.0.16
[PHP] 7.1

SALE!というタグが付いた商品を呼び出し、
商品の情報を取得したいです。

blockとして使用するつもりで、タグを呼び出して
名前のみを表示することはできたのですが、
画像や金額などが取得できません。

ご教示頂けますでしょうか。
よろしくお願いします。

<?php


namespace Eccube\Controller\Block;


use Eccube\Application;
use Symfony\Component\HttpFoundation\Request;

class SalesItemController
{
public function index(Application $app) {

$test = $app['limitedtimesale.repository.limitedtimesalegroup']->findBy(array('group_id' => 1));

var_dump($test);

// del_flg(削除フラグ)がたっていないものを取得
$product_data = $app['eccube.repository.product']
->findBy(array('del_flg' => 0),array('update_date' => 'DESC'));

// unsetするため一時的な変数へ
$temp = $product_data;
foreach ($temp as $key => $Product)
{
$delete_flg = true;
// 非公開のものは除外
if (! $Product->isEnable())
{
unset($product_data[$key]); continue;
}
// タグがSALE!のものを抽出
$tag = $Product->getProductTag();

foreach ($tag as $k => $val)
{
if ($val->getTag() == 'SALE!') $delete_flg = false;
}
if ($delete_flg) unset($product_data[$key]);
}
// テンプレートへ値を渡して出力させる
return $app['view']->render('Block/sales_item.twig', array('SalesItem' => $product_data),array('TimeSales' => $test));

}

}
shima955
投稿日時: 2018/7/26 18:58
対応状況: −−−
半人前
登録日: 2018/7/15
居住地:
投稿: 13
Re: タグの情報を元に商品情報(画像、名前など)を取得
同様の改修を先日手がけたところです。
Block内 以下のコードで呼び出しできませんでしょうか?

forループの書き出し
{% for Product in SalesItem %}


商品名
{{ Product.name }}


商品詳細へのリンク
{{  url('product_detail', {id : Product.id}) }}


画像URL
{{ app.config.image_save_urlpath }}/{{ Product.main_list_image|no_image_product }}


名前と価格(名前必要なければ削除してください)
<dl>
  <dt class="item_name">{{ Product.name }}</dt>
  {% if Product.hasProductClass %}
    {% if Product.getPrice02Min == Product.getPrice02Max %}
      <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price">
        {{ Product.getPrice02IncTaxMin|price }}
      </dd>
    {% else %}
      <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price">
        {{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}
      </dd>
    {% endif %}
  {% else %}
    <dd id="result_list__price02_inc_tax--{{ Product.id }}" class="item_price">{{ Product.getPrice02IncTaxMin|price }}</dd>
  {% endif %}
</dl>


forループの終わり
{% endfor %}


ご参考まで。うまく動くといいのですが…
densuke
投稿日時: 2018/7/26 19:12
対応状況: −−−
半人前
登録日: 2018/7/26
居住地:
投稿: 29
Re: タグの情報を元に商品情報(画像、名前など)を取得

ありがとうございます!
正にこれです!

コードをコピーするだけで表示することができました!


ご存知なら知って頂きたいのですが、

<img src="{{ app.config.image_save_urlpath }}/{{ Product.main_list_image|no_image_product }}">


上記のコードの”main_list_image”はどこかのテーブルのカラムデータでしょうか。
勉強不足ですみません。。

shima955
投稿日時: 2018/7/26 19:27
対応状況: −−−
半人前
登録日: 2018/7/15
居住地:
投稿: 13
Re: タグの情報を元に商品情報(画像、名前など)を取得
ご参考になったなら何よりでした。

なお、main_list_imageは、以下のように取得されているようです。

/src/Eccube/Entity/Product.php 内にて
public function getMainListImage() {
  $ProductImages = $this->getProductImage();
  return empty($ProductImages) ? null : $ProductImages[0];
}


動作としては、dtb_product_image に登録されている対象商品の複数のImageより、最初のものを取得して main_list_image としているようですね。

ご参考になれば。
densuke
投稿日時: 2018/7/26 19:42
対応状況: −−−
半人前
登録日: 2018/7/26
居住地:
投稿: 29
Re: タグの情報を元に商品情報(画像、名前など)を取得

そんなところで定義してたんですね。。
見落としてました。

ありがとうございます!!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,841名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.