OCStore UE 3.0.3.9

  • Автор темы Автор темы Daniel
  • Дата начала Дата начала
А почему на гитхаб не выложишь? Удобно ж ослеживать версии и разрабатывать.

Пока поставил потестить на PHP 8.4.12, сразу вылетела ошибка:
Код:
Unknown: Creation of dynamic property Session\DB::$maxlifetime is deprecated in \system\library\session\db.php on line 11
На PHP 8.2+ создание динамических свойств объектов (не объявленных в классе) запрещено, короче там надо объявить private $maxlifetime; в system\library\session\db.php вот так:
PHP:
<?php
namespace Session;

class DB {
    private $db;
    private $config;
    private $maxlifetime;
 
Пока поставил потестить на PHP 8.4.12, сразу вылетела ошибка:
Весь код не адаптирован под последние версии PHP. Должно работать на PHP 7.3-8.2 (в теории). Многие модули и шаблоны не совместимы с последними версиями PHP. Особого смысла нет в адаптации кода.

Есть идея добавить немного удобства, потоковое создание категорий, товаров, информационных страниц и др.). Сейчас, чтобы создать, например категорию, нужно нажать кнопу [+], заполнить обязательный минимум и нажать сохранить. После чего вас выкинет на страницу списка категорий. Для создания новой категории нужно повторить все действия снова, совершая лишние шаги, которых можно избежать.

Правильный пользовательский интерфейс, пример реализации

Кнопка Сохранить: создать → список категорий + стандартный success (стандартное поведение)

Кнопка Применить: при редактировании: сохранить → остаться в редактировании, при добавлении: создать → перейти в редактирование созданной

Кнопка Сохранить и создать ещё: при добавлении: создать → остаться в добавлении + сообщение (alert) “Создана категория X…”, при редактировании: сохранить → перейти к добавлению новой + сообщение (alert)

Выглядит это так
Screenshot_2026_02_02-2.png
Результат - экономия времени и нервов при последовательно добавлении нескольких сущностей (категории, товары и др.)
 
Заметил ошибку при обновлении модификатора. При загрузке ocmod все норм, а когда обновляешь модификатор по кнопке "Загрузить" - вылетает ошибка. В предыдущей версии такого не было. PHP включал разные 7.4-8.3, Есть рабочий сайт на майской версии, там все работает.
 

Вложения

  • Снимок экрана 2026-02-02 124057.jpg
    Снимок экрана 2026-02-02 124057.jpg
    135,6 КБ · Просмотры: 14
Заметил ошибку при обновлении модификатора. При загрузке ocmod все норм, а когда обновляешь модификатор по кнопке "Загрузить" - вылетает ошибка. В предыдущей версии такого не было. PHP включал разные 7.4-8.3, Есть рабочий сайт на майской версии, там все работает.
можешь выложить проблемный модификатор?
 
можешь выложить проблемный модификатор?
XML:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
    <name>Admin Language toggle</name>
    <version>1.00</version>
    <author>author</author>
    <link></link>
    <code>admin-lang-toggle</code>

    <file path="admin/language/ru-ru/common/header.php">
        <operation error="skip">
        <search><![CDATA[// Text]]></search>
            <add position="after" ><![CDATA[
//Admin Language Switcher
$_['text_admlang']             = 'Язык администратора';
$_['text_admlang_warning']    = 'Обратите внимание! При смене языка текущая страница будет перезагружена, а все несохраненные данные утеряны';
$_['admlang_change']        = 'Сменить язык';
$_['admlang_cancel']        = 'Отмена';
            ]]></add>
        </operation>
    </file>
    <file path="admin/language/uk-ua/common/header.php">
        <operation error="skip">
        <search><![CDATA[// Text]]></search>
            <add position="after" ><![CDATA[
//Admin Language Switcher
$_['text_admlang']             = 'Мова адміністратора';
$_['text_admlang_warning']    = 'Зверніть увагу! При зміні мови поточна сторінка буде перезавантажена, а всі незбережені дані втрачені';
$_['admlang_change']        = 'Змінити мову';
$_['admlang_cancel']        = 'Скасувати';
            ]]></add>
        </operation>
    </file>
</modification>
 
Попробуйте заменить файл "/system/library/db/mysqli.php" из версии в которой все работает.
Заменил. Та же ошибка, в функции:
версия май 2025:
public function countAffected() {
return $this->connection->affected_rows;
}

версия ocstore_mod_2025-09-19:
/**
* Get the number of affected rows.
*
* @return int
*/
public function countAffected(): int {
return $this->connection ? $this->connection->affected_rows : 0;
}
 
cnhf
Заменил. Та же ошибка, в функции:
версия май 2025:
public function countAffected() {
return $this->connection->affected_rows;
}

версия ocstore_mod_2025-09-19:
/**
* Get the number of affected rows.
*
* @return int
*/
public function countAffected(): int {
return $this->connection ? $this->connection->affected_rows : 0;
}
Мне не удается повторить ошибку. Возможно код у меня уже изменен, но загрузка модификатора у меня не работает тоже. Просто нет ошибки.
 
Заменил. Та же ошибка, в функции:
версия май 2025:
public function countAffected() {
return $this->connection->affected_rows;
}

версия ocstore_mod_2025-09-19:
/**
* Get the number of affected rows.
*
* @return int
*/
public function countAffected(): int {
return $this->connection ? $this->connection->affected_rows : 0;
}
Исправил обновление модификаторов. Скопировать с заменой
 
Вылезла проблема в разделе API - не сохраняется IP. В предыдущей версии все работает.
На скрине: записал 2 IP, но после сохранения пустое поле.
 

Вложения

  • APIs.jpg
    APIs.jpg
    116,7 КБ · Просмотры: 15
Вылезла проблема в разделе API - не сохраняется IP. В предыдущей версии все работает.
На скрине: записал 2 IP, но после сохранения пустое поле.
Замените файлы на файлы из архива, исправлена ошибка пустого поля
Дополнительные улучшения: UX для API интерфейса:
  1. Вкладка Session не показывается при создании API (ее наличие там нелогично)
  2. Администратор может добавить свой текущий IP в один клик, без копирования.
  3. При создании нового API ключ будет создан автоматически.
Screenshot_2026_03_12-1.png
 
Замените файлы на файлы из архива, исправлена ошибка пустого поля
Дополнительные улучшения: UX для API интерфейса:
  1. Вкладка Session не показывается при создании API (ее наличие там нелогично)
  2. Администратор может добавить свой текущий IP в один клик, без копирования.
  3. При создании нового API ключ будет создан автоматически.
Посмотреть вложение 9431
Установил, проверил, все работает. Спасибо :)
 
Работает стабильно, все функции интернет-магазина работают корректно.
 
а есть где то релиз со всеми описанными здесь исправлениями ?
 
отмечу сразу, сборка неплохая, учтены многие болячки опенкарта, со старта есть ощущение более лучшего движка. Все так, но если ставить поверх шаблон, модули, которые рассчитаны на стандартный опенкарт 3.x, могут возникнуть конфликты, особенно в ocmod. Поэтому придется ковыряться в модах.
 
Все так, но если ставить поверх шаблон, модули, которые рассчитаны на стандартный опенкарт 3.x, могут возникнуть конфликты, особенно в ocmod. Поэтому придется ковыряться в модах.
По факту, проблема не такая страшная если понимать чем вызвана несовместимость:
1. Изменение форматирования, модификаторы часто содержат шаблон для точного поиска, т.е. искомая строка должна полностью совпадать. Разница в один пробел приведет к тому, что шаблон не будет найден.
2. Ошибки в коде или улучшения в коде. Исправленный код не соответствует оригиналу, поэтому он не будет найден.
3. Мертвый код в модификациях. Авторы стараются (для своего удобства) напихать в один модификатор все сразу, поддержку различных версий и сборок. Результат - большая часть кода никогда не сработает в конкретных условиях, но будет висеть в логе в виде ошибок.

Почему это должно быть исправлено в оригинале. Оригинальный Opencart и его производные Ocstore, Livestore и другие, имеют проблему с форматированием кода. Это использование пробелов и табуляций для отступов и выравнивания. Контроллеры использую табуляции, файлы шаблонов - пробелы, также и там и там встречается смешивание первого и второго.
Автор Opencart откровенно плюет на пользователей и превратил свой продукт в процесс бесконечного самолюбования, непрерывного выпуска новых несовместимых версий, игнорирует и не исправляет найденные ошибки и не прислушивается к мнению и рекомендациям пользователей. Это же поведение наследуют и его "последователи".
А реальность такова - в любом случае потребуется правка модификаций, но это не такая проблема. Сейчас сборка в стадии большей несовместимости, чем та что выложена здесь. Но даже монстраподобные модификации исправляются за относительно небольшой промежуток времени.
 
  • Мне нравится
Реакции: pozn
На сегодняшний день сборка работает на PHP7.3-8.3. Дальнейшее повышение версии PHP требует повышение версии TWIG с его зависимостями, что приведет к несовместимости с PHP 7.3+. В сборке исправлены все найденные ошибки, улучшено все поведение, взаимодействие с которым вызывало раздражение. Отсутствует реклама и встроенные торговые площадки. Боковое левое меню приведено к виду и поведению как версии 2.x с улучшениями. Поддержка webp и svg, автоматическое создание правильного favicon для витрины из svg с возможностью выбора цвета. Рабочее обновление курсов валют. Улучшенный и современный вид админки, удобное управление правами пользователей, улучшено установка и управление расширениями, раздельные логи, несколько систем файлового кеша. Удобное редактирование категорий и товаров, автоматическое создание SEO-URL, удобный файловый менеджер с пакетным добавлением изображений, возможность изменения сортировки изображений путем перетаскивания, добавлены фильтры, поиск заказов по номеру телефона и e-mail покупателя, исправлены все javascript на соответствие с jQuery 3.0, письма в формате html, получение и вставка координат (геокода) при заполненном адресе магазина, поле модель не обязательное, отключено кеширование для админки (причина в админке важна правильная информация а не скорость, иногда можно было получить кэшированные данные вместо актуальных) и еще много всего.
И это реальные изменения, а не просто выдуманный список который написали для OcStore.
Screenshot_2026_09_15-1.pngScreenshot_2026_09_15-2.pngScreenshot_2026_09_15-3.pngScreenshot_2026_09_15-4.pngScreenshot_2026_09_15-5.pngScreenshot_2026_09_15-6.png
 
Последнее редактирование:
Назад
Верх