Drupal Commerce - базові поняття. Стилізуємо товари в каталозі
- Додавання власного імені рядка для продуктів
- Вивести ціну і форму додавання в корзину на одному рядку в каталозі товарів
- Зробити поля Ціна і Додати в кошик на одному рядку і по центру
- Замінити слово Додати в кошик на Купити або В кошик
- Фото товару у спливаючому вікні при кліці
- Кнопка швидкого перегляду товару у спливаючому вікні Colorbox Node
- Оптимізація зображень товарів
Drupal Commerce - потужний модуль, що дозволяє працювати з товарами і окремими полями: виводити потрібні поля в необхідному форматі, стилі.
Разом з Views можна відображати товари в каталозі з різними фільтрами, форматами відображення, виводити тільки потрібні поля. Розглянемо кілька прикладів.
..статья в процесі наповнення разічних техніками, в міру можливості будуть додаватися нові рекомендації ...
У запропонованому уроці всі стилі CSS пишуться в файл теми сайту. Використовувану за замовчуванням тему сайту можна дізнатися по кнопці Зовнішній вигляд admin / appearance.
У наших прикладах використовуємо базову тему Adaptive Theme і її підтему з нашою назвою (за замовчуванням SubTheme). Соответвтенно ми правимо файл /sites/all/themes/subtheme/css/global.styles.css Для вашої теми це може бути файл style.css в корені теми або в папці styles, css. Якщо у вас Bartik, то файл стилів знаходиться в /themes/bartik/css/style.css
Додавання власного імені рядка для продуктів
Навіщо це потрібно: на сайті буває багато уявлень товарів та інших уявлень, і потрібно прописати тільки товарам однакові стилі карток товарів в каталозі. Модуль Views додає за замовчуванням в кожній виставі для окремого блоку матеріалу клас "view-row". Якщо в стилях описувати опції для .view-row, тоді інші уявлення не для товарів будуть відображатися неправильно. Тому потрібно для всіх уявлень товарів зробити спеціальний клас рядки (елемента).
Це робиться так:
- Відкрийте редагування Уявлення
- У розділі Формат в рядку Формат: Неформатований список (можливо, у вас інший формат) - натисніть Налаштування
- В поле "Клас рядки" пропишіть product
- збережіть
- Виконайте те ж саме для всіх інших уявлень товарів
Тепер ви зможете в файлі стилів задати властивості картки товару для всіх уявлень, так як скрізь використовується клас рядки "product".
Це дуже зручно для стилізації товарів в тегах, Каталозі, на Головній та в інших місцях.
Вивести ціну і форму додавання в корзину на одному рядку в каталозі товарів
Щоб відображати два поля на одній лінії потрібно використовувати CSS-стилі для цих полів (вони мають класи)
1. Що прописати в CSS
- Натисніть правою кнопкою миші на ціну і далі - Перегляд коду елемента (тобто запустіть фаербаг і знайдіть це поле)
- Скопіюйте ім'я каса поля Ціни, а також ім'я поля форми доабвленія в кошик. У моєму випадку на сторінці Views товарів це були такі імена класів: .views-field-commerce-price, .views-field-add-to-cart-form
- Пропишіть у файлі стилів код з опціями display або float для цих полів на ваш розсуд:
.views-field-add-to-cart-form {display: inline-block; margin-left: 4%;}
.views-field-add-to-cart-form {display: inline-block;} - Закачайте оновлений файл стилів і обновіть сторінку
Можливі помилки: якщо ви не знайшли в фаербаг класи цих полів, тоді налаштуйте Подання товарів тут admin / structure / views: в настройках Формату в області Показати: Поля або Тизер по кнопці Налаштування додайте галку: "Надавати елементи обгортки полів за замовчуванням" - це додасть всім компонентам стандартні класи, що містять імена полів.
Але це рішення не дає можливості зробити обидва поля по центру. Якщо намагатися в CSS додати опцію text-align: center; для обох полів, то це не буде працювати - поля стануть окремими рядками. Для вирішення проблеми продовжуємо: об'єднати два поля в один блок і отцентруем цей загальний блок.
Зробити поля Ціна і Додати в кошик на одному рядку і по центру
Для цього потрібно об'єднати два поля в 1 div-блок. Це робиться в Поданні.
- Створіть Подання товарів, додайте потрібні поля, зазвичай: Тема, Фото, Ціна, Форма додавання в корзину.
- Поле Ціна зробіть прихованим - тобто натисніть по цьому полю в налаштуваннях Уявлення і відзначте галку "Виключити з виведення" або "Exclude from diaplay".
- Поле Форма дбавленія в кошик налаштуйте і відкрийте секцію Замінити результати - там поставте галку "Замінити виведене полем значення" і напишіть html-код, що містить маркери (використовувані маркери можна подивитися нижче на сторінці редагування поля в секції "підстановлювальний шаблони"). У нашому прикладі використовується такий html-код:
<Div class = "cart-form"> <div class = "views-field-commerce-price"> [commerce_price] </ div> [add_to_cart_form] </ div>
тобто в коді присутня токен ціни і форми додавання в корзину, і обидва вони об'єднані 1 блоком. До речі, обидва вони тепер будуть об'єднані, так як будуть виводитися в блоці форми додавання в корзину. - Збережіть Подання та перегляньте в фаербаге код сторінки. Там можна буде знайти класи полів і стилізувати висновок у файлі стилів.
У нашому приклад стилі виглядають так:
.product .views-field-commerce-price {display: inline-block; margin-right: 4%; vertical-align: middle; font-size: 18px;}
.product .views-field-add-to-cart-form {}
.product .cart-form {text-align: center;}
.product form.commerce-add-to-cart {display: inline-block; vertical-align: middle;}
В результаті картка товару виглядає так:
Ціна і форма додавання в корзину на одному рядку і по центру
Замінити слово Додати в кошик на Купити або В кошик
Якщо ви економите місце, або вам приємніше читати "Купити", то потрібно редагувати рядок "Додати в кошик". Це робиться різними способами, уявімо тільки простешій.
- Відкрийте конфігурація - Регіон і мова - Переклади - Переклади
- Знайдіть рядок Add to cart або Додати в кошик - регістр букв враховується - якщо не знайшли, то в фільтрі виберіть Перекладені і неперекладені рядки
- Натисніть змінити і виправте на потрібне вам слово: Купити або В кошик
- збережіть
Також картка товару може містити кнопки: купити в 1 клік, швидкий перегляд (за допомогою колорбокс ноді або підвантаженням матеріалу з іншими js-функціями ри наведенні)
Фото товару у спливаючому вікні при кліці
Це можна зробити з модулем Colorbox Node / Node / 7 якщо ви не хочете для всіх фотографій запускати Колорбокс, а тільки для фото товару, тоді в Менеджері Дисплея типу содржімого Товар на вітрині тобто тут / admin / structure / types - виберіть для поля Фото товару формат Colorbox node або Ізобпаженіе і з модулем Link зробіть це фото посиланням на файл і додайте клас colorbox-node.
Кнопка швидкого перегляду товару у спливаючому вікні Colorbox Node
Для цього додайте кнопку швидкого перегляду із запропонованим самопісний модулем colorbox_node_view_link
Оптимізація зображень товарів
Якщо ви або ваші користувачі вантажать фото в форматі PNG, і це заповнює дисковий простір, які обмежено у вас, тоді оптимізуйте зображення, переводите в формат JPG. Як це робити описано тут: Оптимізація зображень Drupal при створенні матеріалів / Node / 51