質問 > フロント機能 > twig で文字列が含まれるかどうかの判別 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
takeo |
投稿日時: 2017/7/15 14:33
対応状況: 解決済
|
半人前 登録日: 2015/1/12 居住地: 投稿: 18 |
twig で文字列が含まれるかどうかの判別 EC-CUBE 3.0.14 を使用しております。
detail.twig を、外部パスからの画像でも商品画像として表示出来るように修正を使用としています。 <!--★画像★--> <div id="item_photo_area" class="col-sm-6"> <div id="detail_image_box__slides" class="slides"> {% if Product.ProductImage|length > 0 %} {% for ProductImage in Product.ProductImage %} {% if 'http://' in ProductImage %} <div id="detail_image_box__item--{{ loop.index }}"><img src="{{ ProductImage|no_image_product }}"/></div> {% else %} <div id="detail_image_box__item--{{ loop.index }}"><img src="{{ app.config.image_save_urlpath }}/{{ ProductImage|no_image_product }}"/></div> {% endif %} のようにし、 ProductImage に http:// という文字列が含まれる場合(商品画像が外部パス名の場合)、 <img src="{{ ProductImage|no_image_product }}"/> とし、 ProductImage に http:// が含まれない場合(商品画像が通常のローカル保存されたファイル名の場合)、 <img src="{{ app.config.image_save_urlpath }}/{{ ProductImage|no_image_product }}"/> にする、という簡単な処理なのですが、 ProductImage に http:// という文字列が含まれる場合 を判定する、 {% if 'http://' in ProductImage %} が間違っているのか、上手くいかず困っております。 ※上記のソースでは、 ProductImage に http:// が有ったとしても FALSE となっているようで上手く判定してくれません。※ なぜなのか?どのようにすると正しく判定してくれるのか、 ご教授頂きたく、よろしくお願い申し上げます。 |
nyorai |
投稿日時: 2017/7/18 9:58
対応状況: −−−
|
仙人 登録日: 2015/8/21 居住地: 投稿: 302 |
Re: twig で文字列が含まれるかどうかの判別
|
takeo |
投稿日時: 2017/7/18 15:48
対応状況: −−−
|
半人前 登録日: 2015/1/12 居住地: 投稿: 18 |
Re: twig で文字列が含まれるかどうかの判別 ありがとうございます!
教えていただいた通りで上手くいきました。 |
nyorai |
投稿日時: 2017/7/18 16:07
対応状況: −−−
|
仙人 登録日: 2015/8/21 居住地: 投稿: 302 |
Re: twig で文字列が含まれるかどうかの判別 よかったですー
{{ ProductImage }} のときは、実際には__toString()が動いていて、文字列に変換されているのですが、 https://github.com/EC-CUBE/ec-cube/blob/3.0.15/src/Eccube/Entity/ProductImage.php#L18 {% if ... %} で評価するときはそのままオブジェクトとして評価されるみたいですね。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |