Posted by gg45 on October 31, 2016 at 8:59am
お世話になります。
Drupal 8 のviewsについてですが、
フィールドで「独自のテキスト」を使用して、その中に下記のようにbackground-imageを記載していのですが
<div class="image" style="background-image: url({{ field_image }});">
・・・
</div>上記のように記述すると、下記のようにstyle部分が表示されなくなってしまいます。
<div class="image">
・・・
</div>何か解決方法をご存知の方は教えていただけると助かります。
何卒よろしくお願いいたします。
Comments
私も同じことをやろうとして、いろいろ調べたことがあります。
私も同じことをやろうとして、いろいろ調べたことがあります。
原因はセキュリティの観点から、ビューズはclass以外の属性をフィルターすることでした。
更に、
<div class="image" style="background-image: url({{ field_image }});">・・・
</div>
では、
url(<img src="">)のように、urlだけでなく、imgタグ全体が出力されてしまうかと思います。
結局、コーディングなしの解決方法は見つからず、PHPなら、hook_views_pre_render()など、JSなら、field_imageを出力し、CSSでdisplay:noneに設定、imgタグ内のsrcの値を取得し、対象ののdivにbackground-imageのurlとして、与える等で解決しました。
ビューズUIの設定だけでdivに背景画像を付ける方法があれば、私も是非知りたいところです。
class
class 以外の属性はテンプレート側に書いてしまう手はあります (GUIだけで完結しなくなるけど..)
https://api.drupal.org/api/drupal/core!modules!views!views.theme.inc/group/views_templates/8.2.x
Shumpeiさん ありがとうございます。 やはりview
Shumpeiさん
ありがとうございます。
やはりviewsだけでは対応ができないのですかね。。。難しいところです。
hook_views_pre_render()を利用してやってみようと思いますが、こちらは テーマ名.theme ファイルに記載すれば良いのでしょうか?
まだDrupal 8慣れておらず、質問ばかりですみません。
よろしくお願いいたします。
テーマ名.themeに記載でで大丈夫だと思います。 Vie
テーマ名.themeに記載でで大丈夫だと思います。
Viewsで使えるhookは多数ありますので、一番使いやすいのを選ぶと良いと思います。
https://api.drupal.org/api/drupal/core%21modules%21views%21views.api.php...
しかし、確かにblauerbergさんのおっしゃる通り、テンプレートに書くほうが分かりやすいかもしれません。
テンプレートで解決しました!
blauerbergさん、Shumpeiさん、情報ありがとうございました。
viewsのhookで対応しようと思ったのですが、私には若干難しかったため
views-view-fields.html.twigファイルをオーバーライドして対応し、解決しました!
本当にありがとうございました。