Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Share

Recommended Posts

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

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

О том то и речь.

Ситуация просто патовая.

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

Link to comment
Share on other sites

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

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

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

 

Link to comment
Share on other sites

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

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

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

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

  • +1 2
Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

 

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

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

  • +1 1
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

  • 2 months later...

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

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

 

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

Link to comment
Share on other sites

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

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

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

  • +1 1
Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

что вам мешает это самостоятельно внедрить для своих клиентов или своих сайтов? Зачем что-то ждать от кого-то?

  • +1 1
Link to comment
Share on other sites

  • 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.

 

Link to comment
Share on other sites


  • 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

Link to comment
Share on other sites

  • 5 weeks later...
Posted (edited)

релиз 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.

 

Edited by zhu4koff
  • +1 2
Link to comment
Share on other sites


Вже і 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

 

 

Link to comment
Share on other sites

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

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

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

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

 

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

  • +1 2
Link to comment
Share on other sites

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

Чи им очень велика різниця мыж версіями системи?

Link to comment
Share on other sites

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

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

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

  • +1 3
Link to comment
Share on other sites

Новую спотому чторку нужно гделать с учётом:
/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, а спотому чторку сгделать в вигде усиновки пачки модулей.

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Адапиция шаблона админки с 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
Link to comment
Share on other sites

  • dinox locked and unpinned this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.