in case one has/uses no VqMod, or no VqMod Manager, to check on errors, I changed The Krotek's VqMod a little to hopefully work and be installed/handled like a regular OcMod.
At least, if this LINE, by example, will be handled correctly under OcMod Spec's:
path="admin/controller/extension/extension/" name="dashboard.php .....e.t.c.
It's untested, I use no OC v.2.3.x., so, I will change the code, if someone tell's me to.
Good Luck
Ernie
opencart_2.3_compatibility_fixes.ocmod.xml
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name><![CDATA[OpenCart 2.3 Compatibility Fixes]]></name>
<version><![CDATA[2.0.5]]></version>
<code><![CDATA[krotek_compatibility_fixes]]></code>
<author><![CDATA[The Krotek]]></author>
<!-- Admin: Extensions -->
<file path="admin/controller/extension/extension/" name="dashboard.php,feed.php,fraud.php,module.php,payment.php,shipping.php,theme.php,total.php">
<operation error="log">
<search><![CDATA[$this->load->controller('extension]]></search>
<add position="before"><![CDATA[
$type = strtolower(str_replace('ControllerExtensionExtension', '', __CLASS__));
if (__FUNCTION__ == 'install') {
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', $type.'/'.$this->request->get['extension']);
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', $type.'/'.$this->request->get['extension']);
}
$this->load->controller($type.'/'.$this->request->get['extension'].'/'.__FUNCTION__);
]]></add>
</operation>
<operation error="log">
<search><![CDATA[$this->response->setOutput($this->load->view('extension/extension]]></search>
<add position="before"><![CDATA[
$data['extensions'] = array_unique($data['extensions'], SORT_REGULAR);
usort($data['extensions'], function($a, $b){ return strcmp($a["name"], $b["name"]); });
]]></add>
</operation>
</file>
<!-- Admin: Compatibility -->
<file path="admin/controller/event/compatibility.php">
<operation error="log">
<search><![CDATA[$route = $part[1] . '/' . $part[2];]]></search>
<add position="after" index="2"><![CDATA[
$part = explode('/', $route);
$directories = array($this->config->get('config_admin_language'), $this->language->default, 'english');
foreach ($directories as $directory) {
if (!is_file(DIR_LANGUAGE.$directory.'/'.$route.'.php') && is_file(DIR_LANGUAGE.$directory.'/'.$part[1].'/'.$part[2].'.php')) {
$route = $part[1].'/'.$part[2];
break;
}
}
]]></add>
</operation>
</file>
<!-- System: Language -->
<file path="system/library/language.php">
<operation error="log">
<search><![CDATA[private $default = 'en-gb';]]></search>
<add position="replace"><![CDATA[
public $default = 'en-gb';
]]></add>
</operation>
</file>
<!-- System: Config -->
<file path="system/config/catalog.php">
<operation error="log">
<search><![CDATA[$_['action_event'] = array(]]></search>
<add position="after"><![CDATA[
'controller/extension/analytics/*/before' => 'event/compatibility/controller',
'controller/extension/captcha/*/before' => 'event/compatibility/controller',
'controller/extension/feed/*/before' => 'event/compatibility/controller',
'controller/extension/fraud/*/before' => 'event/compatibility/controller',
'controller/extension/module/*/before' => 'event/compatibility/controller',
'controller/extension/payment/*/before' => 'event/compatibility/controller',
'controller/extension/recurring/*/before' => 'event/compatibility/controller',
'controller/extension/shipping/*/before' => 'event/compatibility/controller',
'controller/extension/theme/*/before' => 'event/compatibility/controller',
'controller/extension/total/*/before' => 'event/compatibility/controller',
]]></add>
</operation>
</file>
<!-- Catalog: Checkout -->
<file path="catalog/controller/checkout/cart.php">
<operation error="log">
<search><![CDATA[if ($files) {]]></search>
<add position="before"><![CDATA[
$files = array_merge($files, glob(DIR_APPLICATION.'controller/total/*.php'));
]]></add>
</operation>
<operation error="log">
<search><![CDATA[if ($files) {]]></search>
<add position="after"><![CDATA[
$modules = array();
]]></add>
</operation>
<operation error="log">
<search><![CDATA[if ($result) {]]></search>
<add position="before"><![CDATA[
$modules[] = basename($file, '.php');
}
foreach (array_unique($modules) as $module) {
$result = $this->load->controller('extension/total/'.$module);
]]></add>
</operation>
</file>
</modification>