Я работаю над модификацией для Opencart, используя OCmod. Изначально я начал писать его для Opencart 2 (на самом деле он сделан и работает). Теперь я обновляю его для OC3.
Вот краткий пример того, что происходит не так.
Раньше я писал это для OC2:
<operation>
<search><![CDATA[
'status' => ($result['status']) ? $this->language->get('text_enabled') : $this->language->get('text_disabled'),
]]></search>
<add position="replace"><![CDATA[
'status' => ($result['status']),
]]></add>
</operation>
Проблема в том, что начиная с OC3 эта часть кода:
'status' => ($result['status']) ...
был изменен на:
'status' => $result['status'] ...
Следовательно, строка не будет найдена, и замена не будет произведена.
По этой причине, если я хочу опубликовать свою модификацию для обеих версий, мне придется выпустить две разные версии моей модификации.
Интересно, есть ли способ сказать OCmod искать одну из двух строк, а затем изменить найденную. Таким образом, у меня мог быть только один код, работающий для обеих версий.
Я попытался продублировать этот фрагмент кода, заставив его искать обе строки, но моя модификация перестает работать, так как одна из строк не найдена.
Любые идеи о том, как обойти это?