Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

OpenCart 4 - Наблюдение для релиза ocStore 4


dinox

Recommended Posts

Только что, Vladzimir сказал:

а мы изменить тоже не можем, поскольку "заложники" у Даниэля и опенкарта.

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

 

Надіслати
Поділитися на інших сайтах

А смысл? Все что "ломает" совместимость - внедрять не будут.

А совместимость ломает практически все.

Надіслати
Поділитися на інших сайтах

2 минуты назад, Vladzimir сказал:

А смысл? Все что "ломает" совместимость - внедрять не будут.

А совместимость ломает практически все.

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

  • +1 2
Надіслати
Поділитися на інших сайтах

1 минуту назад, SergeTkach сказал:

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

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

Если что это была Joostina (форк Joomla 1.0*)

Надіслати
Поділитися на інших сайтах

5 минут назад, SergeTkach сказал:

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

 

Серж, потому-что на голом энтузиазме никто в наше время ничего пилить не будет))
А если пилить, то уже на чем-то современном, типа Laravel + Vue или React.
В противном случае и так сойдет))

Чего реально не хватает в Opencart так это ORM и API, что бы разделить бек и фронт.
Ну а о постоянном дублировании кода итд уже и говорить не стоит, это не излечимо)

  • +1 1
Надіслати
Поділитися на інших сайтах

1 минуту назад, ocdev_pro сказал:

Ну а о постоянном дублировании кода итд уже и говорить не стоит, это не излечимо)

Лечится, но для этого нужно попасть в Гонконг с молотком.

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Я так понимаю, более-менее нормальной реализации хуков ждать не стоит )))

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

 

Да и очень не хватает какой-нибудь реализации очередей. Ну вот оформляет посетитель заказ. Нажал ОФОРМИТЬ и ждет, пока там под капотом все докрутится, пока заказ упадет в БД, ждет отправку писем админу и себе...  По-хорошему - плюнуть задание в очередь  и сразу перенаправить посетителя на страницу success.

Надіслати
Поділитися на інших сайтах

20 минут назад, kur1977 сказал:

Нажал ОФОРМИТЬ и ждет, пока там под капотом все докрутится, пока заказ упадет в БД, ждет отправку писем админу и себе...  По-хорошему - плюнуть задание в очередь  и сразу перенаправить посетителя на страницу success.

И тут фигак параллельно, но на 1 сек раньше, другим заказом списалась последняя единица товара с остатка и по этому заказу пошла ошибка.
Тут, раз, уж на то пошло, нужно делать резервирование товара в БД при переходе в корзину, но это усложняет логику, а ОС, смею напомнить, движок бесплатный. Идея ваша здравая, но плюшки всегда стоят денег. 

  • +1 1
Надіслати
Поділитися на інших сайтах


55 минут назад, pawana сказал:

И тут фигак параллельно, но на 1 сек раньше, другим заказом списалась последняя единица товара с остатка и по этому заказу пошла ошибка.
Тут, раз, уж на то пошло, нужно делать резервирование товара в БД при переходе в корзину, но это усложняет логику, а ОС, смею напомнить, движок бесплатный. Идея ваша здравая, но плюшки всегда стоят денег. 

Да что там усложнять, перейти на транзакции и все. Нашли что в php усложнять, будет релиз 4 вот и посмотрим, а пока это все рассуждения на вольную тему

Надіслати
Поділитися на інших сайтах

2 часа назад, pawana сказал:

И тут фигак параллельно, но на 1 сек раньше, другим заказом списалась последняя единица товара с остатка и по этому заказу пошла ошибка.
Тут, раз, уж на то пошло, нужно делать резервирование товара в БД при переходе в корзину, но это усложняет логику, а ОС, смею напомнить, движок бесплатный. Идея ваша здравая, но плюшки всегда стоят денег. 

Так списывание тоже должно быть засунуто в воркер ))) Если все грамотно спроектировать - не будет никаких ФИГАК

Надіслати
Поділитися на інших сайтах

  • 3 months later...

на момент 22 октября, Данька уточнил, что до конца года 4 должны сделать.. мои сомнения равны 100%
 

Цитата

I beleive it will be released by the end of the year. my team currently are testing the cloud system. we plan to launch the a subscription version of opencart on cloud hosting this year. for it to work i need 4.0 fully working.

 

Надіслати
Поділитися на інших сайтах


  • 4 months later...

У кого есть пример модуля для установки на 4.0?

 

Полагаю такая структура:

module.ocmod.zip/nickname/catalog/controller/module/new_module.twig

module.ocmod.zip/nickname/catalog/view/template/module/new_module.twig

module.ocmod.zip/install.json

 

 

opencart.ocmod.zip

Надіслати
Поділитися на інших сайтах

  • 5 weeks later...

релиз https://github.com/opencart/opencart/releases/tag/4.0.0.0

 

Цитата

Its finally here! OpenCart 4.0.0.0. After many years hard work.

 

ADDED
PHP 8.1+ Compatibly
New event based extension system
Startup page
CRON job page
GDPR
Product variants. You can now choose to use create a new product variant based off a master product and link the stock quantities.
Cookie accept policy.
Admin notification system. OpenCart can now send you updates and news information directly to your OpenCart admin.
Autoloader class
Telephone field now optional
Additional admin security, renaming admin folder, install directory, moving storage folder.

 

UPDATED
Boootstrap 5
jQuery v3.6.0
Font Awsome 6
CKEditor 5
Renamed order_recurring to subscription system.
Sliding buttons instead of checkboxes
All forms are now using AJAX.
New installer
Upgrade system can be done fully via the admin.
Reports system.
Admin alerts.
Backup system now backs up the database in parts to avoid crashing with large tables.
Order editor has been completely reworked so API session is not required.

 

REMOVED
OCMOD


All 3rd party extensions. There is a system to download and add core extensions directly to the extension pages.

 

Змінено користувачем zhu4koff
  • +1 2
Надіслати
Поділитися на інших сайтах


Вже і vQmod з'явився
Що потрібно було очікувати. На що розраховував Даніель? ...

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=42736&filter_download_id=65

 

Модулів практично нема, тем (шаблонів) теж...
https://www.opencart.com/index.php?route=marketplace/extension&filter_download_id=65

 

 

Надіслати
Поділитися на інших сайтах

Установка модулей. Название архива входит в состав пути контроллера.

В итоге установка mymodule.ocmod.zip, чтобы в названии пути прописывать mymodule. По другому архив не назвать, например, с указанием версии с пробелами.

Требуется переделка, чтобы название папки mymodule брало из install.json

Лучшее решение, называть папку по имени автора.

 

У многих модули нерабочие т.к. маркетплейс режит "_" в архивах.

  • +1 2
Надіслати
Поділитися на інших сайтах

24.05.2022 в 12:12, markimax сказал:

Модулів практично нема, тем (шаблонів) теж...
https://www.opencart.com/index.php?route=marketplace/extension&filter_download_id=65

 

Там щось трохи більше було для бети. Ось так: https://www.opencart.com/index.php?route=marketplace/extension&filter_download_id=56

Чи там дуже велика різниця між версіями системи?

Надіслати
Поділитися на інших сайтах

Тому кто для использования своего модуля или темы в opencart 4 будет требовать vqmod уже подготовлено отдельное место в аду.

Остальным же просто надо руки укорачивать тупым ржавым топором.

Opencart и так тугой в плане развития, так ещё и разрабы тормозят

  • +1 3
Надіслати
Поділитися на інших сайтах

Новую сборку нужно делать с учётом:
/admin/index.php?route=tool/upgrade

 

Варианты:

1. удалить /admin/index.php?route=tool/upgrade

2. создать аналог /admin/index.php?route=tool/upgrade

3. оставить /admin/index.php?route=tool/upgrade и добавить аналог по обновлению сборки, и систему бэкапов.

4. оставить /admin/index.php?route=tool/upgrade, а сборку сделать в виде установки пачки модулей.

 

Надіслати
Поділитися на інших сайтах

24.05.2022 в 15:55, buslikdrev сказал:

Новую сборку нужно делать с учётом:
/admin/index.php?route=tool/upgrade

 

Варианты:

1. удалить /admin/index.php?route=tool/upgrade

2. создать аналог /admin/index.php?route=tool/upgrade

3. оставить /admin/index.php?route=tool/upgrade и добавить аналог по обновлению сборки и систему бэкапов.

4. оставить /admin/index.php?route=tool/upgrade, а сборку сделать в виде установки пачки модулей.

 

Думаю не так.. будет просто пачка всего, что ставится как модуль и в папке extension будет висеть папка opencartforum

Надіслати
Поділитися на інших сайтах

Адаптация шаблона админки с 2.Х-3.Х на 4.Х

<style>
span[data-toggle="tooltip"]:after {font-family:'Font Awesome 5 Free';color:#1E91CF;content:"\f059";margin-left:4px}
input.form-control:read-only,
select.form-control:read-only {background-color:#ffffff}
button.close {padding:0;background:transparent;border:0;-webkit-appearance:none}
.close {float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}
.close:hover,
.close:focus {color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}
</style>

 

Найти: btn-default

Заменить: btn-default btn-outline-primary

Найти: data-toggle="tooltip"

Заменить: data-toggle="tooltip" data-bs-toggle="tooltip"

Найти: pull-right

Заменить: pull-right float-end

Найти: panel panel-default

Заменить: panel panel-default card

Найти: panel-heading

Заменить: panel-heading card-header

Найти: panel-title

Заменить: panel-title card-title

Найти: panel-body

Заменить: panel-body card-body

Найти: well well-sm

Заменить: well well-sm form-control

 

Кто использует <br> в описании, добавляйте  data-bs-html="true"

 

 

Адаптация контроллера админки (универсал):

Скрытый текст

К сожалению нужно будет для контроллера админки добавлять:

namespace Opencart\Admin\Controller\Extension\BusCache\Module;

В других файлах можно кодом изменять.

namespace Opencart\Admin\Controller\Extension\BusCache\Module;

// забараняем прамы доступ
if (!defined('VERSION')) {
	header('Refresh: 1; URL=/');
	exit('ЗАПРЫШЧАЮ!');
}

if (version_compare(VERSION, '4.0.0', '>=')) {
	class Controller extends \Opencart\System\Engine\Controller {}
}

if (version_compare(VERSION, '2.3.0', '<')) {
	class ControllerModuleBusCache extends BusCache {}
} elseif (version_compare(VERSION, '4.0.0', '<')) {
	class ControllerExtensionModuleBusCache extends BusCache {}
}

class BusCache extends Controller {
	private $name_arhive = 'Buslik Cache';
	private $code = '';
	private $mame = '';
	private $version = '1.0.14';
	private $author = '';
	private $link = '';
	private $version_oc = 4;
	private $paths = array();

	public function __construct($foo) {
		parent::__construct($foo);
		if (method_exists($this->language, 'set')) {
			$this->language->set('bus_cache_version', $this->version);
		}
		if (version_compare(VERSION, '4.0.0', '>=')) {
			$this->version_oc = 4;
			$this->paths = array(
				'controller' => array(
					'bus_cache' => 'extension/bus_cache/module/bus_cache',
					'module' => 'extension/module',
					'extension' => 'marketplace/extension',
					'modification' => 'marketplace/modification',
				),
				'language' => array(
					'bus_cache' => 'extension/bus_cache/module/bus_cache',
				),
				'model' => array(
					'bus_cache' => 'extension/bus_cache/module/bus_cache',
					'bus_cache_path' => 'model_extension_module_bus_cache',
					'module' => 'setting/module',
					'module_path' => 'model_setting_module',
					'extension' => 'setting/extension',
					'extension_path' => 'model_setting_extension',
					'modification' => 'setting/modification',
					'modification_path' => 'model_setting_modification',
					'event' => 'setting/event',
					'event_path' => 'model_setting_event',
				),
				'view' => array(
					'bus_cache' => 'extension/bus_cache/admin/view/template/module/bus_cache',
				),
				'token' => 'user_token=' . $this->session->data['user_token']
			);
		} elseif (version_compare(VERSION, '3.0.0', '>=')) {
			$this->version_oc = 3;
			$this->paths = array(
				'controller' => array(
					'bus_cache' => 'extension/module/bus_cache',
					'module' => 'extension/extension/module',
					'extension' => 'marketplace/extension',
					'modification' => 'marketplace/modification',
				),
				'language' => array(
					'bus_cache' => 'extension/module/bus_cache',
				),
				'model' => array(
					'bus_cache' => 'extension/module/bus_cache',
					'bus_cache_path' => 'model_extension_module_bus_cache',
					'module' => 'setting/module',
					'module_path' => 'model_setting_module',
					'extension' => 'setting/extension',
					'extension_path' => 'model_setting_extension',
					'modification' => 'setting/modification',
					'modification_path' => 'model_setting_modification',
					'event' => 'setting/event',
					'event_path' => 'model_setting_event',
				),
				'view' => array(
					'bus_cache' => 'extension/module/bus_cache',
				),
				'token' => 'user_token=' . $this->session->data['user_token']
			);
		} elseif (version_compare(VERSION, '2.3.0', '>=')) {
			$this->version_oc = 2.3;
			$this->paths = array(
				'controller' => array(
					'bus_cache' => 'extension/module/bus_cache',
					'module' => 'extension/extension/module',
					'extension' => 'extension/extension',
					'modification' => 'extension/modification',
				),
				'language' => array(
					'bus_cache' => 'extension/module/bus_cache',
				),
				'model' => array(
					'bus_cache' => 'extension/module/bus_cache',
					'bus_cache_path' => 'model_extension_module_bus_cache',
					'module' => 'extension/module',
					'module_path' => 'model_extension_module',
					'extension' => 'extension/extension',
					'extension_path' => 'model_extension_extension',
					'modification' => 'extension/modification',
					'modification_path' => 'model_extension_modification',
					'event' => 'extension/event',
					'event_path' => 'model_extension_event',
				),
				'view' => array(
					'bus_cache' => 'extension/module/bus_cache',
				),
				'token' => 'token=' . $this->session->data['token']
			);
		} else {
			$this->version_oc = 2;
			$this->paths = array(
				'controller' => array(
					'bus_cache' => 'module/bus_cache',
  					'module' => 'extension/module',
					'extension' => 'extension/module',
					'modification' => 'extension/modification',
				),
				'language' => array(
					'bus_cache' => 'module/bus_cache',
				),
				'model' => array(
					'bus_cache' => 'module/bus_cache',
					'bus_cache_path' => 'model_module_bus_cache',
					'module' => 'extension/module',
					'module_path' => 'model_extension_module',
					'extension' => 'extension/extension',
					'extension_path' => 'model_extension_extension',
					'modification' => 'extension/modification',
					'modification_path' => 'model_extension_modification',
					'event' => 'extension/event',
					'event_path' => 'model_extension_event',
				),
				'view' => array(
					'bus_cache' => 'module/bus_cache.tpl',
				),
				'token' => 'token=' . $this->session->data['token']
			);
		}
	}

	public function index() {
		if ($this->version_oc >= 3) {
			$template_engine = $this->registry->get('config')->get('template_engine');
			$this->registry->get('config')->set('template_engine', 'template');
		}

		if ($this->version_oc >= 4) {
			extract($data);

			ob_start();

			require(DIR_OPENCART . $this->paths['view']['bus_cache'] . '.tpl');

			$template = ob_get_clean();
		} else {
			$template = $this->load->view($this->paths['view']['bus_cache'], $data);
		}

		if ($this->version_oc >= 3) {
			$this->registry->get('config')->set('template_engine', $template_engine);
			$this->response->addHeader('Content-Type: text/html; charset=utf-8');
		}

		$this->response->setOutput($template);
	}

	public function install() {
			// изменяем файлы
			if ($this->version_oc >= 4) {
				$module_paths = array(
					DIR_EXTENSION . 'bus_cache/catalog/controller/event/bus_cache.php',
					DIR_EXTENSION . 'bus_cache/system/library/bus_cache.php',
				);

				foreach (glob(DIR_EXTENSION . 'bus_cache/system/library/bus_cache/*') as $path) {
					$module_paths[] = $path;
				}

				foreach ($module_paths as $path) {
					if (is_file($path)) {
						file_put_contents($path, str_replace(array('namespace Bus_Cache', '//namespace Opencart'), array('//namespace Bus_Cache', 'namespace Opencart'), file_get_contents($path)));
					}
				}
			}
	}

	public function uninstall() {
			// изменяем файлы
			if ($this->version_oc >= 4) {
				$module_paths = array(
					DIR_EXTENSION . 'bus_cache/catalog/controller/event/bus_cache.php',
					DIR_EXTENSION . 'bus_cache/system/library/bus_cache.php',
				);

				foreach (glob(DIR_EXTENSION . 'bus_cache/system/library/bus_cache/*') as $path) {
					$module_paths[] = $path;
				}

				foreach ($module_paths as $path) {
					if (is_file($path)) {
						file_put_contents($path, str_replace(array('//namespace Bus_Cache', 'namespace Opencart'), array('namespace Bus_Cache', '//namespace Opencart'), file_get_contents($path)));
					}
				}
			}
	}
}

 

 

  • +1 6
Надіслати
Поділитися на інших сайтах

В 24.05.2022 в 15:55, ocdev_pro сказав:

Тому кто для использования своего модуля или темы в opencart 4 будет требовать vqmod уже подготовлено отдельное место в аду.

 

Я был самым ярым противником vQmod т к "пересел" на opencart с других CMS
И "да", это я любил overdrive & events
But....

ocmod это совместное средство разработки (такой себе микрогит)
Отдельное  место в.... тому кто его "убрал"

Абстрагируемся ... не будем о коде, давайте о view к примеру

Расскажи мне как теперь допустим изменить шаблон, при том что авторы обновляют их
"Ты" такой сделал модуль... изменил шаблон (да! а как по другому) куда изменения внес? Аааа.... в шаблон. Автор темы внес изменения в код  темы

Владелец магазина обновил тему...
И он не "программист" блд
Всё 3.14 все "затерлось"
Не надо путать "праведное" с "грешным"
ocmod как средство совместной разработки был самым лучшим что есть в CMS

И отдельное место тому кто не понимает что это не "патчер" а совместное средство разработки
Какая на х... разница что ты "ручками" вносишь изменения в (к примеру) в код шаблона или через ocmod? Большая. Код не затрется если автор решил обновить тему.
А теперь блд... как? Как "жить" владельцам магазинам. "Изучать" гит? Су.. ка "как", а не проще было ocmod?
Отдельное теперь место в а... у тому кто "убрал" его
Это была фишка opencart
ocmod - это совместное средство разработки (микрогит)

Теперь блд ... давайте все перейдем на MS гит, таже ху... ня только в профиль, но заёб....истая для обычных юзеров магазинов и "рассказывать" что "вы" блд супер кодеры. Потом учить владельцев магазинов MS гит, и говорить им что теперь НЕЛЬЗЯ обновляться без "вас". Занавес.


 

Надіслати
Поділитися на інших сайтах

25.05.2022 в 06:07, markimax сказал:

Я был самым ярым противником vQmod т к "пересел" на opencart с других CMS
И "да", это я любил overdrive & events
................

Теперь блд ... давайте все перейдем на MS гит, таже ху... ня только в профиль, но заёб....истая для обычных юзеров магазинов и "рассказывать" что "вы" блд супер кодеры. Потом учить владельцев магазинов MS гит, и говорить им что теперь НЕЛЬЗЯ обновляться без "вас". Занавес.


 

Бинго. Ибо магазины приносят деньги, а значит разрабы тоже должны получать деньги. Для конечного владельца бизнеса халявные модули, все сторонняя совместимость итд закончатся. И будет примерно так:
- Хочешь магазин, попробовать себя в торговле.. вот тебе облачное решение
- Вырос и хочешь что-то свое, вот кодеры, платишь нормально денег получаешь магазин с нужными функциями.

А не так что вот накидал за 50$ магаз, если он выстрелил, то еще на 200-300$ нагреб модулей и студент с фриланса это все собрад за 3 копейки...
Вот так не должно быть! Ибо нет смысла учиться новым технологиям, чему-то сложному, нет прогресса. Лично мое мнение - бизнес должен платить за средства которые он использует для получения прибыли, в данном случае магазин это средство которое без программиста не будет работать. Ровно как машина без автомеханика и обслуживания.

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

Надіслати
Поділитися на інших сайтах

  • dinox locked та unpinned this topic
Гість
Ця тема закрита для публікації повідомлень.
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.