Настройка views

Главные вкладки

Аватар пользователя Kublahan Kublahan 28 октября 2020 в 6:38

У меня на drupal сделан сайт для магазина. Создан новый тип материала для товара и таким образом добавлены товары с ценами и фото. Через view это выводится в коллекцию и показывается клиентам.
Проблема вот в чем - как можно сделать, чтобы в отдельных ячейках отображался значок SALE? Время от времени надо устанавливать скидки, а фотошопить фото товара и перезаливать не удобно. Какие есть варианты?

Комментарии

Аватар пользователя OldWarrior OldWarrior 28 октября 2020 в 9:06

1. Уточните версию Друпала.
2. Добавить поле-флажок в тип материала товара для маркировки "SALE".
3. Во вьюсе выводить это поле с кастомным div'ом.
4. В CSS для этого кастомного div'а сделать любые нужные правила (вплоть до абсолютного позиционирования поверх фото товара).

Аватар пользователя Kublahan Kublahan 28 октября 2020 в 9:21

OldWarrior wrote:
2. Добавить поле-флажок в тип материала товара для маркировки "SALE".
3. Во вьюсе выводить это поле с кастомным div'ом.

По второму пункту - просто добавить любое поле, маркер распродажи?
По третьему пункту - как это сделать? Куда там писать при настройке?
Drupal у меня 7

Аватар пользователя OldWarrior OldWarrior 28 октября 2020 в 10:41

Kublahan wrote: По второму пункту - просто добавить любое поле, маркер распродажи?

Совершенно верно. Лучше - поле-флаг (чекбокс).

Kublahan wrote: По третьему пункту - как это сделать? Куда там писать при настройке?

  1. Добавить это поле в вывод вьюса.
  2. В свойствах/настройках поля найти Overwrite ouput of this field (Перезаписать вывод поля).
  3. В открывшемся поле ввода указать HTML-разметку, которую нужно выводить вместо стандартного значения. Например, <div class="sale-sign">SALE</div>

PS. Изучайте views, это азы.

Аватар пользователя Kublahan Kublahan 28 октября 2020 в 17:36

OldWarrior wrote: Overwrite ouput of this field

Не сочтите за навязчивость, но где найти такую настройку? Это во views или где? Все облазил и такое не нащел

Аватар пользователя OldWarrior OldWarrior 28 октября 2020 в 18:01

Kublahan wrote: Это во views или где? Все облазил и такое не нащел

Да, во views.
У меня сейчас нет под рукой никакой вьюхи для D7 для примера.
Выложите скриншот вашего вьюса.

Аватар пользователя marassa marassa 29 октября 2020 в 8:06

OldWarrior говорит о настройках поля. Чтобы попасть в настройки поля, нужно ткнуть в настройках view в нужное поле (например Content:Price). Там будет целая секция REWRITE RESULTS.

Аватар пользователя OldWarrior OldWarrior 29 октября 2020 в 15:28

marassa wrote: Ну вот же, прямо под REWRITE FIELDS, Rewrite the output of this field.

Да, я это и имел в виду. Забыл как точно это звучит по-английски.

Только, разумеется, автору нужно добавить своё поле-чекбокс в вывод вьюса, тут Content:Price приведён только для примера. И дальше для этого поля-чекбокса уже настраивать вывод.

Аватар пользователя Kublahan Kublahan 29 октября 2020 в 17:15

OldWarrior wrote: Во вьюсе выводить это поле с кастомным div'ом

Я использую стандартный модуль Views и там после выбора "Rewrite the output of this field" не появляется окошка для div. Надо ли что то дополнительного устанавливать?

Аватар пользователя marassa marassa 29 октября 2020 в 17:38

Kublahan wrote: после выбора "Rewrite the output of this field" не появляется окошка для div

А что же появляется?

Kublahan wrote: Надо ли что то дополнительного устанавливать?

Нет.

Аватар пользователя Kublahan Kublahan 4 ноября 2020 в 15:23

Разобрался, дополнительные параметры не появляются из-за JQuery 1.8
Поменял на 1.5 и все заработало.
Прописал div блок и вывел картинку вместо true
Теперь осталось разобраться как свободно эту картинку перемещать по блоку, пока position не сильно помогает в css

Аватар пользователя Kublahan Kublahan 7 ноября 2020 в 6:13

Не подскажите с еще одной вещью?
Я сделал так, что скидка теперь над фото товара, перетащив ее вверх поверх
В CSS прописал

.views-field-field-sales {
position: relative;
top: -200px;
}

Почему свободное место (черный прямоугольник) после перетакивания картинки остается, смотриться не очень. Как сделать, чтобы снизу пространство тоже ушло?

Аватар пользователя marassa marassa 7 ноября 2020 в 8:26

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