Как минимум - стандарты вроде psr4, со всеми прелестями. Composer, npm и тд.
Может дорасту когда нибудь и до этого. Мне бы пока в столбик считать научится нормально.
<-------------- добавлено через 769 сек. -------------->
Очередное дополнение в версию 0.0.8.1.3 Надо бы упорядочить нумерацию версий, а пока просто добавляю цифры в зависимости от субъективной серьезности изменений.
Добавлена возможность сохранять еще 3 цены к тем, что уже были (цена и старая цена).
Наконец-то удалось переписать контроллер карточки товара (ProductAdmin.php). Теперь работать с ним должно быть легче, поскольку все операции разделены на отдельные методы внутри класса. save_product() сохраняет данные самого товара, save_variants() сохраняет вариант и т.д.
Все таблицы переделаны исходя из принципа не использовать DEFAULT NULL (теоретически должно работать быстрее). Первое серьезное использование api через ajax. В карточке товара при добавлении связанных товаров делается обращение products->get_products_ids(), которое выдает в ответ имена и id товаров. В симпле примерно тоже самое делалось через отдельный скрипт в каталоге ajax.
Обновление доступно в виде дистрибутива.
Код:
https://github.com/legale/rapida/tree/master/distro
# RAPIDA Ecommerce CMS
## SimplaCMS 2.3.8 fork
##IMPORTANT INFO
Для работы системы на сервере Nginx необходимо прописать следующую инструкцию в конфиг.
```
location / {
try_files $uri $uri /index.php$is_args$args;
}
```
## ****************
## Changelog
## ****************
## =================
## v0.0.8.1.3 18.12.2017
## =================
### bugs:
- Исправлена ошибка в features/get_product_options().
- Исправлена ошибка на странице каталога товаров в админке (справа не появлялись бренды).
- Устранена ошибка в настройках свойств товаров, когда после импорта не появлялись категории.
- Устранена ошибка в таблице s_users. Некоторые версии субд не позволяют иметь в 1 таблице 2 поля с настройкой default current_timestamp. В связи с этим у поля last_login изменено значение по умолчанию.
- В методе products->delete_image() добавлена проверка, что если удаляемое изображение имеет position 0, нужно удалить запись о нем из таблицы s_products. Там запись об изображении хранится для повышения быстродействия.
- Исправлена кривая ссылка в админке на иконке "Каталог".
- Начата работа по рефакторингу контроллеров админки. Первый контроллер ProductAdmin.php
- Сделана дополнительная проверка имен свойств в методе features->add_feature() для исключения создания дублей одинаковых свойств.
- Дополнительные проверки входных данных на методы products->add_product() products->update_product() для возможности упрощения контроллеров админки.
- Устранение ошибки в методе brands->get_brands().
- Исправлены ошибки контроллера xhr.
- Устранена проблема поиска товаров русскими буквами. Использование русских символов для поиска по полю, в котором хранится ascii невозможно. Поэтому теперь для поиска в таблице артикулов транслитерируется ключевая фраза. Изменены методы get_products, get_products_ids, count_products.
- В связи с удалением поля name в таблице s_images, исправлены методы, работающие с этой таблицей.
## improvements:
- Перетряхнул класс variants.
- Много изменений в типах полей таблиц. Везде где можно изменил DEFAULT NULL. Спасибо Black Hat.
- В таблице s_variants изменена кодировка поля sku на ascii, удалено поле attachment, добавлены поля: price1, price2, price3 для сохраненения разных цен товара, например оптовых и закупочных. Для продолжения
работы придется создавать БД заново. Для сохранения товаров проще всего сделать экспорт, потом создание БД заново, а затем импорт товаров.
- Переписан контроллер productAdmin.php. Теперь все разделено по отдельным блокам, просто и логично. Количество кода незначительно выросло, теперь где-то ~400 строк кода, против ~350 в старом контроллере. Весь js очищен от Jquery, теперь ajax добавление связанных товаров работает через xhr контроллер, а не через отдельный php файл, как в симпле. Для полноценной работы по принципу SPA придется сделать api богаче по функциям. Буду добавлять их по мере необходимости.