Вийшла нова версія Okay CMS 3.8.0
- Можливість модифікації tpl файлів
- Поліпшення роботи з зображеннями. WebP і SVG, змінені багато js бібліотеки
- Створена і додана конфігурація для Nginx
- Зроблена можливість створювати кілька XML в модулях
- Додано функціонал спливаючій кошика в систему за замовчуванням
- Зроблені різні технічні поліпшення системи
- Зроблені різні поліпшення і виправлення для користувачів сайту
Можливість модифікації tpl файлів
Найважливіша і ключове завдання, яке ми реалізували в 3.8.0 - це можливість модифікації tpl файлів.
Крім вбудовування в шорт-блоки в OkayCMS тепер є функціонал модифікації tpl файлів без їх зміни. Даний функціонал працює так, що оригінальні файли залишаються незміненими, але в compiled потрапляє файл в зміненому стані, ніби був змінений оригінальний tpl файл.
Файл розбирається на якесь DOM дерево, але в якості Ноди може бути також Smarty елемент.
На даний момент з Smarty елементів в якості Ноди має дочірні елементи підтримуються тільки foreach, function і if (foreachelse і else будуть просто текстовими дочірніми елементами). Всі інші Smarty елементи будуть як текстові ноди.
`Нода` - це елемент DOM (Document Object Model) дерева. Нода може містити дочірні Ноди, тільки якщо це не зачиняються самостійно ( `<img>`, `<br>`, `<input>` etc) і не текстова нода.
Всі реєстрації змін шаблону виробляються в блоці modifications файлу module.json вашого модуля (файл повинен розташовуватися в директорії Init модуля).
Саме зміна має містити одне з властивостей find або like в якому вказується яку ноду потрібно знайти.
Для внесення самих змін є кілька властивостей.
- append | текст або ім'я файлу з вмістом | додає вміст в кінець зазначеної нод
- prepend | текст або ім'я файлу з вмістом | додає вміст в початок зазначеної Ноди
- appendBefore | текст або ім'я файлу з вмістом | додає вміст в родірельскую ноду але перед поточної
- appendAfter | текст або ім'я файлу з вмістом | додає вміст в родірельскую ноду але після поточної
- html | текст або ім'я файлу з вмістом | замінює вміст обраної Ноди на вказане
- text | текст або ім'я файлу з вмістом | синонім html
- replace | текст або ім'я файлу з вмістом | дозволяє змінити текст відкриває Ноди (може знадобитися для додавання / зміни атрибутів etc)
- remove | значення не береться | видаляє поточну ноду з усіма її нащадками.
У документації по посиланню https://github.com/OkayCMS/Okay3/blob/master/docs/tpl_modifiers.md є більш докладний опис цього функціоналу з прикладами його використання.
Ми вважаємо що це рішення, на відміну від рішення того ж опенкарта, більш революційний тому ми працюємо не з текстом і рядками, а з DOM об'єктами. Ми можемо знайти елемент і додати йому дочірній елемент, можемо звернутися до батьківських елементів, як DOM елемента може бути {foreach}, {if}, {function}. Дане рішення має вивести роботу розробників над модулями для нашої системи на новий рівень.
Поліпшення роботи з зображеннями. WebP і SVG, змінені багато js бібліотеки
Впровадили автоматичну підтримку webp зображень. Тепер в налаштування каталогу можна активувати підтримку webp і до звичайного зображення буде додаватися ще аналог webp.
Це дозволило значно зменшити розмір підключаються зображень на сторінці, прискорити завантаження сторінки сайту і домогтися більш високих балів по PageSpeed. WebP на даний момент впроваджено для зображень банерів, брендів, фото товарів в списку товарів і фото в самому товарі.
Зроблена можливість завантажувати зображення в svg. Іноді це більш зручно для зображень категорій, брендів або логотипу. Тепер така можливість є.
Оновили, видалили або замінили багато бібліотек. Саме основне, це прибрали owl-carusel і замість неї використовуємо більш популярний swiper. Крім того, це дозволило скоротити кількість підключаються JS файлів і прискорити завантаження сторінки. З мінусів - тепер в картці товару немає лупи при наведенні на фото, вона доступна тільки при кліці по фото товару.
Деякі модулі в старих версіях системи могли використовувати JS бібліотеки, яких немає в новій версії. Якщо у вас є додатково встановлені модулі, наприклад "Відео в галереї товару" і т.п., ці модулі додатково потрібно буде адаптувати для нової версії. Адаптовані модулі для нової версії найближчим часом будуть доступні за посиланням на скачування модуля, яка приходила на пошту після оформлення замовлення.
Створена і додана конфігурація для Nginx
У документації до OkayCMS https://github.com/OkayCMS/Okay3/blob/master/docs/nginx/nginx.conf доданий приклад конфігурації Nginx під OkayCMS. За замовчуванням з цією конфігурацією система працювати буде. Але там опущені такі моменти як робота сервера з SSL і можливо ще якісь індивідуальні особливості сервера. Можливо що потрібно допрацьовувати конфігурацію під конкретний сервер, але ключові правила реврайтов, приховування зайвого та інше в прикладі описані.
Зроблена можливість створювати кілька XML в модулях
Іноді клієнтам потрібні кілька XML з різними товарами, але в одному форматі. Наприклад для вивантаження в ТурбоСтраніц і для Яндекс.Маркет використовується одна і та-ж вивантаження. Нашим вирішенням цієї проблеми стала можливість створення необмеженої кількості вивантажень одного формату.
Тепер при вході в модуль спочатку буде кнопка "Створити вивантаження". При її натисканні буде стандартний функціонал з настройками вивантаження з модуля. Але також буде додаткове поле "Посилання для вивантаження".
Клієнт вказує туди латиницею посилання, наприклад "mebel" і по посиланню http://new.demookay.com/rozetka/mebel.xml доступна ця вивантаження. При збереженні тепер в модулі показується список існуючих вивантажень з посиланнями на них, а нижче кнопка "Створити вивантаження"
Після поновлення посилання для вивантажень зміниться, врахуйте це і не забудьте вказати нову коректну посилання там, де ви використовуєте ці вивантаження.
Додано функціонал спливаючій кошика в систему за замовчуванням
Нас вже довгий час дратувала стандартна "улеталка" при додаванні товару в кошик, которя виглядала дуже по старому. У підсумку ми реалізували в системі функціонал спливаючій кошика.
Зроблені різні технічні поліпшення системи
- Зробили можливість при реєстрації шортблока вказати ще callback функцію, яку варто викликати перед отрисовкой шортблока. Це може знадобитися якщо для відтворення шортблока потрібно попередньо передати в дизайн якісь дані. Раніше для цього реєстрували окремий екстендер, тепер можна більш явно і простіше це зробити.
- Додали шортблокі для розширення функціоналу експорту за допомогою сторонніх модулів.
- Виправили баг стратегій Рауса NoPrefixAndPathStrategy і PrefixAndPathStrategy. Проблема була в тому, що якщо категорія з більш довгим урлом була створена раніше, її батько не відкривався.
- Зроблена можливість додавати в групи банерів свої суті поряд з категоріями брендами і товарами. Це потрібно, коли створюється, наприклад, модуль "Послуги" і в банерах потрібна можливість визначати, на якій сторінці послуги який банер повинен виводитися.
- Для категорій в каталозі і категорій в блоці зроблені різні назви шортблоков в адмін. панелі, так як раніше вони перетиналися.
- Додана можливість перевизначати Рауса.
Зроблені різні поліпшення і виправлення для користувачів сайту
Покращена і розширена мікророзмітки сайту. Впроваджено мікророзмітки пошуку, яка повинна створити можливість пошуку по сайту прямо на сторінці видачі в Google
Додана можливість коректного прорахунку і налаштування доставки Новою Поштою до дверей. Раніше коректно працювало тільки при доставці Склад-Склад. Тепер можна підключити одночасно два різні способи доставки і при цьому з'являються потрібні поля при оформленні замовлення і прораховується коректна вартість доставки Новою Поштою. Також виправлені деякі інші проблеми в роботі Нової Пошти
Додано функціонал, який був раніше ще в другій версії системи, коли при відкритті адмінки - відкривається та сторінка, яка знаходиться сама верхня в меню. Це дозволяє налаштувати админку так, що контент-менеджері буде відразу потрапляти в товари, а продажник - на сторінку замовлень.
У масових діях для товарів зроблена можливість не тільки переміщати товар в іншу категорію, а й масово додавати додаткову категорію.
Зробили в модулі LiqPay при перекладі на сторінку оплати відображення того мови, що був обраний на сайті. Це дозволить уникнути ситуації, коли користувач з іншої країни, купуючи з англійської версії сайту потрапляє на сторінку LiqPay де інформація про оплату вказана російською.
Виправили роботу модуля платіжної системи PayKeeper. Раніше була проблема що після прийому платежу він не відзначав замовлення оплаченим в адмін. панелі.
Додано функціонал пагінацію в адмін. панелі в модулі FAQ
Виправлена передача даних з поля "Доступи" в розділі "Техпідтримка".
На сторінках категорій доданий мета-тег cannonical який коректно вказує на цю сторінку.
Виправлено назву сайту, яке вказується в OpenSearch пошуку.
Зробили, щоб при імпорті товарів з 1С, якщо у кількох товарів однакові назви, то в URL таких товарів додавався їх порядковий номер. Раніше проблема була в тому що для таких товарів створювався однаковий URL і перейти можна було тільки в перший такий товар.
Завантажити нову версію можна по посиланню архів зі змінами в порівнянні з 3.7.1 по посиланню Також ви можете написати через розділ "Техпідтримка" для замовлення оновлення.