Хочу вывести в views тексты с бекграундами. Для этого специальный модуль нужен или через перезапись HTML кодом тоже можно?

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 12:35

Хочу вывести в views тексты с бекграундами.

Т.е. на одном элементе списка
текст статьи + бекграунд из поля изображения этой статьи

Что делаю. Вывожу во вьюху 3 поля:
1) Body - скрыто
2) Название файла (через связь по полю) - скрыто
3) Пользоватльский текст. Такой вот:

<div class="slide-place" style="background: transparent url(&quot;/sites/default/files/slides/[filename]&quot;) no-repeat right center;">
[body]
</div>

Результат:
Выводится
<div class="slide-place">
style="... - не выводится

Так вообще можно как я пытаюсь или для этого специальный модуль нужен?

0 Thanks

Лучший ответ

Аватар пользователя VasyOK VasyOK 4 февраля 2017 в 12:35
1

Спасибо всем за проявленное внимание. Шаблон поля я перепишу для других целей.
Решение моего вопроса найдено тут:
https://www.drupal.org/node/2641524
Можно и без Owl carousel.

Комментарии

Аватар пользователя multpix multpix 3 февраля 2017 в 13:00

Сам я неоднократно использовал контент (изо) в стилях background-image:

Но тут посоветую не мудрствовать, и выводить обычным блочным элементом,
а дале позиционировать с помощью css как угодно.

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 13:06

Если честно не совсем понял.
"выводить обычным блочным элементом" - как?

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 14:00

Ну допустим этим модулем.
Урл файла выводится как /sites/default/files/slides/slayd_0.png

Перезаписанное поле пытаюсь вывести так:

<div class="slide-place" style="background: transparent url(&quot;[field_kartslide]&quot;) no-repeat right center;">
[body]
</div>

Не работает. Или это не так делается?

Аватар пользователя gun_dose gun_dose 3 февраля 2017 в 14:05

Только через шаблон. Потому что вьюс в своих фильтрах отбрасывает атрибут style, даже ишью есть на этот счёт, но сказали, что во имя безопасности не будут менять.

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 15:15

sergeybelya, сам модуль работает. Даже пользовался им. Вопрос: можно ли при помощи этого модуля повесить бекграунд произвольному контейнеру во вьюхе? Без атрибута style реально не вижу как.

Аватар пользователя Mihail.space Mihail.space 3 февраля 2017 в 18:13

ну сделай в перезаписи обертку html поля общей для блока, в нее токен поля изображения и и обертку боди с токеном боди
общей обертке дай релатив, а боди абсолют и по нулям со всех сторон.
для img ширину 100% и мин высоту 100%
чего лисапед изобретать?

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 21:09

Mihail.space, я не против. Но хотелось бы через модуль.
На стадии начала работы с сайтом слишком часто все меняется. Сегодня это одни поля, завтра - другие.
И чем меньше шаблоном переписывать тем лучше. Просьба не воспринимать заявление серьезно. : )

Аватар пользователя Grayw0lf Grayw0lf 3 февраля 2017 в 21:24

Блин из за мелочи такую портянку написали. Перезаписать поле как надо + css. Ну и да, второй способ привести шаблон к нужному выводу.

Аватар пользователя VasyOK VasyOK 3 февраля 2017 в 23:13

"Перезаписать поле как надо" выше утверждается, что элемент style при перезаписи пропадает. А без него не представляю.
Шаблон - понял.

Аватар пользователя Orion76 Orion76 3 февраля 2017 в 23:09

резюмирую все выше посоветованное..
добавляете поле с картинкой в вьюс..
делаете кастомный шаблон, в нем берете урл картинки из поля и вставляете его в шаблон как инлайн-стиль бэкграунда..

Если картинки уникальны для каждой записи вьюса, то этот способ, имхо, самый оптимальный во всех смыслах..

Аватар пользователя bumble bumble 5 февраля 2017 в 17:56

Я решал подобное следующим образом:

  • получал урл картинки
  • получал/присваивал ID'шник нужному блоку
  • формировал css для полученного ID'шника
  • добавлял css как инлайновый на страницу

Правда, в моем случае необходимо было добавлять не только картинку для bg, но и еще несколько динамических свойств.
Получался целый каскад правил.
Но и для 1го работать будет, правда нужно будет учесть при кешировании.