Страница 1 из 1

Вышла новая версия Okay CMS 3.6.0

Добавлено: 13.05.2020, 12:50
OkayCMS
Сперва расскажем, какие фичи (улучшения) вошли в новую версию.
Полностью переделан функционал выгрузок в XML. Теперь используются небуферизированные запросы. Это позволяет нормально обрабатывать выгрузки с большим количеством товаров в них.
По простому, выгрузки станут работать быстрее и лучше.

Сделан кеш роутера, чтобы для генерации урла на стратегиях где используется путь категорий не нужно было их постоянно перегенеривать
По простому, теперь все ситуации когда нужно построить ссылку с учётом категории будут отрабатывать быстрее

Сделали передачу параметра group_id в YML выгрузки. Это позволит более корректно выгружать товары определенных категорий в ЯндексМаркет. Более подробно можно почитать по ссылке
Если раньше товары одной модели но разных цветов или размеров (с разными вариантами) выгружались как полностью разные товары, то теперь идет указание, что они все относятся к одной модели и ЯндексМаркет (и прочие агрегаторы) смогут объеденить их в одну карточку товара с разными вариантами.

Дополнительные языки для системы вынесены в отдельную ветку на GitHub. На данный момент там доступны грузинский языки. За французкий язык отдельное спасибо Юрию Бондаренко. В админ. панели, на странице языков сайта добавили ссылку на GitHub с дополнительными языковыми версиями.
Зачем мы это сделали? Теперь, во-первых, если кто-то найдет опечатку в дополнительном языке, он сможет исправить это просто прислав нам пулреквест и мы сможем опубликовать это сразу, а не откладывать до выхода новой версии. Также в версии по умолчанию не будет языков, которые нам проблемно поддерживать и держать постоянно в актуальном состоянии.

Сделали так, что если в файле переводов не будет какого-то перевода, он будет выводиться на клиентской части на языке по умолчанию, а в админ. части на английском языке.
Иногда разработчики модулей или шаблонов не добавляют переводы на все языки. Если раньше в таких случаях не выводилось ничего и можно было встретить кнопку без текста, то теперь будет выводиться перевод с основного языка. Мы считаем, что если, например, по какой-то случайности не задан перевод для кнопки "Купить", то пусть лучше на украинской версии выведется русское слово чем не будет ничего.

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

Сделали возможность поиска в определенном статусе. Чтобы можно было сделать фильтр по принятым, а затем сделать поиск и он произошел именно в принятых заказах.

Также улучшили отображение плашки с фильтром после фильтрации в списке товаров в админ. панели. Раньше после того как выбрал статус, всё равно отображалось "Все статусы"

Изображение

Переделали модуль Новая Почта

Теперь список актуальных пунктов выдачи не запрашивается каждый раз по API Новой Почты, а скачивается один раз на сайт и берется из него. Это позволило ускорить работы этого модуля. Сделали два способа обновления этих данных, по кнопке в модуле и автоматически, по крону.

Сделали выбор города не из выпадающего списка всех городов, а из автокомплита, который появляется после того как начать вводить первые буквы города. Это также ускорило обработку этого элемента сайта. Переверстали в админ панели отображение страницы модуля, сделали там всё намного более понятным

Изображение

Сделали так, чтобы если в файле перевода нет перевода для конкретной фразы, то берется фраза из основного языка.

Добавили возможность при создании модуля вклиниваться в отображение товара в заказе.

Интегрирована библиотека https://github.com/giggsey/libphonenumber-for-php для работы с телефоном (спасибо makki). В настройках сайта появилась возможность выбрать регион по умолчанию для форматирования номера телефона и формат телефона по умолчанию.

Изображение

Телефон страны можно вводить теперь без кода или с полным кодом страны.

Для ввода телефона других стран его нужно вводить в международном формате. Телефон в базе хранится в чистом виде, без скобок, дефисов и прочего. Это очень полезно, когда телефон нужно в дальнейшем использовать для отправки смс и прочего. На выводе, для клиентов телефон выглядит в соответствии с настройками "Формат телефона по умолчанию"

Создали отдельный .local для переводов, чтобы можно было вести проекты на гите
Проблема с которой мы столкнулись: Клиенты будучи на гите часто хотят править переводы из админки.
Решение: Сделали так чтобы переводы из админки сохранялись в определенный .local файл, и брались оттуда - если есть. Этот файл не будет вестись по гиту и тогда клиент сможет редактировать переводы из админки. Сделано это в модуле ведения проектов на GIT


Сделали информационный блок со статистикой на странице заказов. В данном блоке видна статистика по количеству заказов в каждом статусе. При фильтрации заказов за определенный период - статистика пересчитывается и отображается для указанного периода.

Изображение

Сделали кнопку сортировки свойств по алфавиту.

Изображение

Раньше свойства выводились в том порядке, как их добавили. Это создавала неудобства, особенно когда свойства должны были быть по возрастанию, например вес или размер. Да, их можно было выставить вручную в нужно порядке, но на большом количестве свойств это было неудобно. Кроме того, даже выставив всё вручную, а затем добавив новое значение, нужно было его добавить в нужное место вручную. Теперь можно нажать кнопку и все значения этого свойства в админке и на клиентской части отсортируются по алфавиту.

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

Изображение

Переделали отображение предупреждений, уведомлений и подсказов в админ. панели.

Создали специальный модуль документации админ. панели, чтобы разработчики модулей и дополнений могли легко глянуть, какие есть предустановленные стили и использовали их, чтобы админ панель не была радугой, а выглядела в общем стиле.

Изображение

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

Изображение

Ранее мы сделали отслеживание источников заказа. В этой версии мы доработали возможность переходить из админ. панели по ссылке-источнику заказа. Теперь появилась возможность быстро перейти на сайт откуда пришел клиент и посмотреть, что это за сайт.

Исправлена передача скидок с заказа в 1С

Переделана работа поиска. Теперь, если найдет один товар, то перекидывает сразу в товар, а не на страницу со списком товаров.

В настройках каталога добавлена галочка "Скрывать одиночные фильтры" определяющая, будут ли отображаться фильтры, если есть только один вариант фильтрации по этому свойству.

А также несколько сугубо технических фич для программистов

При создании миграции таблицы из модуля, теперь можно создавать составные индекс. Также теперь можно создавать поля с типом данных mediumtext и longtext

Добавлена регистрация смарти плагинов из модулей для админ-панели.

Изменен вывод ошибок в корзине, перерь все ошибки выводятся через elseif (т.е. выведется только одна) и последним вариантов выводится переменная {$error} в значение которой можно передать текст ошибки из модуля.

Ответ аяксовой корзины перенесен в хелпер, таким образом можно из модуля его модифицировать.

В scripts.tpl добавлен шортблок front_scripts_after_validate, с помощью него можно модифицировать js правила валидации

Во всех письмах клиентам переделана передача переводов, теперь в письме клиента доступны переводы из модулей.

В миграции модулей добавлена проверка, что если поле отмечено как Primary Key то оно не может быть null

А теперь список фиксов прошлой версии
Исправлен баг с сортировкой категорий, если раскрыть всё дерево категорий через плюсик. Раньше перетягивались все категории, теперь перетягивается именно так категория, которая нужна.

Исправлено предупреждение (notice) которое иногда отображалось при загрузке фотографий через файловый менеджер

Изображение

Исправили ошибку рейтинга в микроразметке основного шаблона, когда значение передавалось не просто числом, а в скобках.

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

Исправили слетающую тему под админом при смене разрешения в браузере
После обновления GoogleChrome стал по другому определять мобильную версию, и в итоге если включить тему для админа, перейти под админом на сайт, и в панели разработчика включить отображение сайта как для мобильных устройств, то отображалась основная тема, а не тема для админа. Мы добавили запись в куки с логином менеджера и работы темы под админом теперь связана с этой кукой и не слетает при вышеописанных действиях.

Исправили то, что в методе ProductsHelper::attachFeatures() доставались вообще все свойства
Это создавало проблемы для разработчиков, когда нужно было в админ панели сделать сортировки по какому-то конкретному свойству. Теперь это работает нормально

Исправили работу массового выключения способов оплаты.
Раньше, если галочками отметить все способы оплаты и попробовать их выключить - это не срабатывало. Теперь работает корректно.

Исправили отображение в ситуации когда на сайте телефон не указан, а эмейл указан. Теперь эмейл в шапке отображается сразу, а не при наведении

Исправлены различные, не совсем корректные названия полей в админ. панели. Например в заказе поле с Именем клиента называлось "Название".

Исправили возможно редактирования HTML шаблонов писем из админ панели, с раздела Дизайн - Файлы шаблона. Раньше редактирование писем из админ. панели было запрещено

Исправили баг, при котором, если не кликнуть по способе оплаты, а остаться на первом предложенном - после оформления заказа требовалось подтвердить способ оплаты ещё раз.
Проблема была в том что мы для себя делали отметку о выбранном способе оплаты только после клика. И когда у человека был вот такой выбор, а его устранивал первый вариант и он нигде не кликал, а сразу оформлял заказ, то у нас не отображалось, какой способ оплаты он выбрал и клиенту нужно было перевыбрать. Сейчас это работает нормально.

Изображение

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

После смены варианта товара в заказе - не подтягивались единицы измерения товара. Отображалось так как на скрине ниже. Исправили это.

Изображение

Исправили баг с возвращением на склад товара при удалении заказа.
Когда товар перенесен в принятые, то товар списывается со склада. Когда удаляется заказ из принятых, то такой товар по логике должен был вернуться обратно на склад, но такое не происходило.

Исправили баг с работой выпадающего списка "Каталог товаров" на планшете. При клике по этой кнопке - ничего не происходило. Теперь работает.

Исправили взаимоисключение фильтра по новинкам и рекомендуемым.
Раньше, если уже в категории отфильтровал по какой-то характеристике, то фильтр по новинкам или рекомендуемым не срабатывал.

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

Исправили работу Настрофки ЧПУ для товаров при определенных условиях
Проблема была в том что если выставить определенную комбинацию построения ссылок для товаров, то при переходе в товар выдавалась ошибка 404

В админ. панели, на странице со списком свойств при нажатии на кнопку "Показать все" отображались свойства только с первой страницы пагинации. Поправили это.

Провели рефакторинг кода на предмет потенциальный уязвимостей для XSS атак и исправили их.

Исправили ошибку в микроразметке рейтинга в товаре

Исправили ошибку в отображении других заказов клиента в заказе, во вкладке "Другие заказы". В прошлой версии некорректно работала пагинация, если заказов было много

Сделали корректный порядок вывода свойств в клиентской части. В прошлой версии порядок свойств в админ. панели и порядок свойств в клиентской части иногда мог отличаться.

При создании товара, до того как выбиралась категория, в него по умолчанию подтягивались свойства из первой категории магазина. Это иногда сбивало клиентов. Сейчас при создании товара свойства отображаются только тогда, когда выбрана категория.

Скачать новую версию можно по ссылкеархив с изменениями по сравнению с 3.5.2 по ссылкеТакже вы можете написать через раздел "Техподдержка" для заказа обновления.

Добавлено: 14.05.2020, 11:33
korshunov
OkayCMS писал(а):Покрыли шортблоками печать заказа
Ранее из-за этого, разрабатывая модули нельзя было создать модуль, который как-то изменяет печать заказа. Теперь такая возможность появилась.

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

И опять напрашивается вопрос о документации: хорошо бы иметь (хотя бы неполные) список мест, для изменения которых можно создавать модули, и список мест, для изменения которых нельзя создавать модули...

Добавлено: 14.05.2020, 11:42
OkayCMS
korshunov писал(а):
OkayCMS писал(а):Покрыли шортблоками печать заказа
Ранее из-за этого, разрабатывая модули нельзя было создать модуль, который как-то изменяет печать заказа. Теперь такая возможность появилась.

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

И опять напрашивается вопрос о документации: хорошо бы иметь (хотя бы неполные) список мест, для изменения которых можно создавать модули, и список мест, для изменения которых нельзя создавать модули...
Да, верно. раньше нельзя было создать модуль который изменяет печать заказа. К нам обратились с этим замечанием и мы расширили функционал модульности, с этой версии можно.
Это не значит что модульности как таковой в целом нет. В крайнем случае, можно было модулем полностью переделать всю печать заказа и сделать свою и это бы работало. Мы просто сделали возможность делать это более гибко.

Документация есть на GitHub и мы вам её уже показывали. Если вам этого недостаточно, вы вполне можете прислать нам пулреквестом свои пожелания.
Насчет списка мест где нельзя создавать модули... Это примерно то же что попросить вас составить список мест где вы не побывали.

Добавлено: 14.05.2020, 12:20
zyxer
Я уже писал ранее, что с некоторыми разработчиками сотрудничаем в стиле, они уперлись в какой-то момент, который нельзя сделать через модуль, и далее мы этот момент переделываем в системе и сообщаем разработчику что это в след версии будет так и так.. И бывает наоборот, нам присылают уже исправленные моменты и мы их в том или ином виде добавляем в систему. Но важный момент это точное понимание что это нельзя сделать в текущей системе, а не "не смогли придумать решение".

Добавлено спустя 29 минут 59 секунд:
В модуле Новой почты обнаружился очень неприятный недочет, все кто им пользуется, нужно изменить в файле Okay/Modules/OkayCMS/NovaposhtaCost/design/js/np.js строку 201 с let city_name = $('select.city_novaposhta').children(':selected').val(), на let city_name = $('.city_novaposhta').val(),
Чтобы получилось:

Код: Выделить всё

function set_warehouse() {
    if ($(this).val() != '') {
        $('input[name="address"]').trigger('focus');
        let city_name = $('.city_novaposhta').val(),
            warehouse_name = $(this).val(),
            delivery_address = city_name + ', ' + warehouse_name;
        $('input[name="address"]').val(delivery_address);
        $('input[name="novaposhta_delivery_warehouse_id"]').val($(this).children(':selected').data('warehouse_ref'));
    }
}

Добавлено: 15.05.2020, 11:16
korshunov
OkayCMS писал(а):Насчет списка мест где нельзя создавать модули... Это примерно то же что попросить вас составить список мест где вы не побывали.

Вот по Вашим словам и выходит, что в подавляющем большинстве мест модули сейчас создавать нельзя.
Именно это я имею в виду, когда говорю, что нет никакой модульности системно в целом. Есть лишь отдельные места, которые разработчики приготовили для применения этой самой модульности.

Добавлено: 15.05.2020, 11:29
zyxer
В принципе да, но что именно здесь плохо? И есть ли у вас предложения как сделать модульность системно, но при этом не усложнить систему слишком сильно? Я имею ввиду внедрить какое-то мега решение, и сказать что теперь можно в любую часть системы что угодно внедрить посредством модуля?

Добавлено: 15.05.2020, 12:34
korshunov
В этом ничего плохого нет.

Примерно погода тому назад в теме
viewtopic.php?p=6785#p6785
Вы сказали:

zyxer писал(а): ...мы пытаемся создать максимально гибкую систему, чтобы можно было создать максимально разнообразные доработки, но я уверен на 100% что найдется такая доработка, для создания которой не хватит той самой гибкости, тогда уже будем смотреть.

Эта фраза звучит так, что гибкости не хватит для всего, но ее хватит на большую часть.
А теперь выходит, но гибкости этой хватает лишь на очень малую часть. И в такой ситуации называть это модульностью как-то слишком самоуверенно. По-моему, это лишь постановка все новых и новых заплаток.

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

Добавлено: 15.05.2020, 12:50
zyxer
zyxer писал(а):И есть ли у вас предложения как сделать модульность системно, но при этом не усложнить систему слишком сильно? Я имею ввиду внедрить какое-то мега решение, и сказать что теперь можно в любую часть системы что угодно внедрить посредством модуля?
Ответьте на вопрос.

korshunov писал(а):А теперь выходит, но гибкости этой хватает лишь на очень малую часть. И в такой ситуации называть это модульностью как-то слишком самоуверенно. По-моему, это лишь постановка все новых и новых заплаток.
это по вашему...

Добавлено: 15.05.2020, 12:59
korshunov
Нет у меня такого предложения.

Добавлено: 15.05.2020, 13:09
zyxer
а вот пытаться обгадить то, что сами не знаете как может быть лучше, очень не красиво. Из этого напрашивается вывод что как бы не было сделано, вы скажете что это плохо. Справедливости ради, я скажу что периодически видел от вас конструктивную критику, но лично мне всё чаще сложно понять это конструктивная критика или просто попытка погадить.

P.S. Оскорбить ни в коем случае не хотел.

Добавлено: 15.05.2020, 13:38
makki
Фактически, OkayCMS 3 пропуская через себя код выдает на выходе то, что выдает 2-я без модульности. Тут очевидный минус, о котором я говорил с самого анонса 3-й версии, это ресурсоемкость и ухудшение в быстродействии. С другой стороны 3-я версия имеет более перспективную архитектуру, более лояльна к простому пользователю, но имеет более высокий порог входа для разработчика, а также больше ограничений в разработке. Также у меня есть сомнения, что все будет гладко с совместимостью модулей.

Лично я как программист, которому несложно реализовать любые задачи на 2-й версии Okay, на данный момент отдаю предпочтение последней, хоть и лишаюсь нового функционала и улучшений, который будет из коробки в 3-й версии. Для меня важнее меньшая ресурсоемкость, быстродействие системы и простота кода, чем удобство для установки будущих обновлений или сторонних модулей.

Тем не менее, думаю появление 3-й версии - вполне закономерный и правильный шаг со стороны разработчиков. Единственное, что я бы не спешил забрасывать 2-ю версию. Возможно 3-я версия могла бы быть даже отдельным продуктом.

Добавлено: 15.05.2020, 16:41
korshunov
zyxer писал(а):а вот пытаться обгадить то, что сами не знаете как может быть лучше, очень не красиво. Из этого напрашивается вывод что как бы не было сделано, вы скажете что это плохо. Справедливости ради, я скажу что периодически видел от вас конструктивную критику, но лично мне всё чаще сложно понять это конструктивная критика или просто попытка погадить.

P.S. Оскорбить ни в коем случае не хотел.

А Вы не пытайтесь выискивать какие-то сомнительные психологические мотивы, Вы пытайтесь увидеть суть дела, в частности, конструктивную критику. По-моему, эта критика дала немало хороших идей для развития системы. Одно из последних критических замечаний привело к большой переделке модуля выгрузки hotline, и переделке довольно принципиальной...

Добавлено: 16.05.2020, 16:39
виктор
Скажите , а в этой версии исправили работу статистики? Я тех поддержке не раз обьяснял в чем косяки. если нужно могу и тут скинуть скрины или видио.

Добавлено: 16.05.2020, 18:15
OkayCMS
виктор писал(а):Скажите , а в этой версии исправили работу статистики? Я тех поддержке не раз обьяснял в чем косяки. если нужно могу и тут скинуть скрины или видио.
Нет, статистику по моему не трогали. Скиньте информацию

Добавлено: 17.05.2020, 04:37
виктор
OkayCMS писал(а):
виктор писал(а):Скажите , а в этой версии исправили работу статистики? Я тех поддержке не раз обьяснял в чем косяки. если нужно могу и тут скинуть скрины или видио.
Нет, статистику по моему не трогали. Скиньте информацию
https://photos.app.goo.gl/emqd8VwCZkEA5krQ6 если будут еще вопросы спрашивайте.

Исправление еще одного бага и улучшение поиска отделений НП

Добавлено: 20.05.2020, 18:38
excalibur
В модуле Новой Почты в версии 3.6.0 еще один баг - при выборе "наложенный платеж" сбрасывается выбранное отделение, если его выбрать до нажатия "наложенного платежа". И при каждом переключении происходит сброс отделения.

Происходит из-за того, что при вызове функции calc_delivery_price() при выборе или отмене "наложенного платежа" каждый раз подгружается список отделений. Если город не был изменен, и отделение уже выбрано - можно не перезагружать select2.

Также, очень неудобно отсутствие поиска номера отделения по номеру, так как чтобы найти нужно набрать полное соответствие "Отделение №..."
Я доработал поиск, теперь если человек ввел только число - происходит поиск по номеру отделения.
Ограничивать поиск только номером отделения было бы неправильно, потому что нужна возможность искать по названию улицы, и это можно, если пользователь ввел хотя бы одну букву - тогда происходит полнотекстовый поиск по названию улицы, например, причем, не с начала строки, а по всей строке названия отделений.

Вот такое решение(вставить в начале файла np.js) для улучшение поиска отделений НП:

Код: Выделить всё

const whsParams = {
    matcher: function (params, data) {
        if ($.trim(params.term) === '') {
            return data;
        }
      if ($.isNumeric(params.term)){
         if (~data.text.indexOf("№"+params.term)){
            return data;
         }
      } else if (~data.text.toLowerCase().indexOf(params.term.toLowerCase())) {
            var modifiedData = $.extend({}, data, true);
            return modifiedData;
        }
        return null;
    }
};


И исправление, где добавил проверку был ли изменен список отделений (на случай смены города) и выбрано ли уже отделение:
строки 131-137

Код: Выделить всё

if (data.warehouses_response.success) {
                    warehouses_block.show();
                    warehouses_block.find('.fn_select_warehouses_novaposhta')
                        .html(data.warehouses_response.warehouses)
                        .attr('disabled', false)
                        .select2(configParamsObj);
                } else {


заменил на:

Код: Выделить всё

if (data.warehouses_response.success) {
                    warehouses_block.show();
                    selected_whref = $('.fn_select_warehouses_novaposhta').find(':selected').attr('data-warehouse_ref');
                    if(!$('.fn_select_warehouses_novaposhta').find(':selected').val() || data.warehouses_response.warehouses.indexOf(selected_whref)== -1){
                    warehouses_block.find('.fn_select_warehouses_novaposhta')
                        .html(data.warehouses_response.warehouses)
                        .attr('disabled', false)
                        .select2(whsParams); //улучшенный поиск по номеру отделения
                    }
                } else {

Исправление бага НП на странице заказа в админке

Добавлено: 21.05.2020, 16:00
excalibur
zyxer писал(а):В модуле Новой почты обнаружился очень неприятный недочет, все кто им пользуется, нужно изменить в файле Okay/Modules/OkayCMS/NovaposhtaCost/design/js/np.js строку 201 с let city_name = $('select.city_novaposhta').children(':selected').val(), на let city_name = $('.city_novaposhta').val(),

Так же нужно исправить в бэкенде в файле Backend/design/html/order_contact_block.tpl иначе в блоке адреса город пишется как undefined при изменении отделения например.

строку 126

Код: Выделить всё

let city_name = $('select.city_novaposhta').children(':selected').val(),

на

Код: Выделить всё

let city_name = $('.fn_newpost_city_name').val(),

Добавлено: 28.05.2020, 10:24
Sergey
Разработчики, пожалуйста, переместите и уменьшите эту идиотскую кнопку.
http://i.piccy.info/i9/4685b19d92fe8df00ca66fcf69 ... /31674/1380649/Bezymiannyi.png
Вместо отправить уже который раз нажимаем закрыть!