Я хочу заменить строку с помощью OCMOD
Я использую приведенный ниже код для замены строки в файле админ / модель / продажа / customer.php
<file path="admin/model/sale/customer.php" error="log">
<operation>
<search><![CDATA[ $this->load->model('setting/store'); ]]></search>
<add position="before"><![CDATA[
if($this->isFront==true) {
$this->load->adminmodel('setting/store');
} else {
$this->load->model('setting/store');
}
]]></add>
</operation>
</file>
Строка поиска $this->load->model('setting/store');
повторяется три раза в файле.
Проблема в том, что когда я использую приведенный выше код, он неожиданно заменяет строку. Он добавляет код где-то рядом с функцией, что приводит к синтаксической ошибке в модификации. Пример после замены:
.....
.....
public function addReward($customer_id,
if($this->isFront==true) {
$this->load->adminmodel('setting/store');
} else {
$this->load->model('setting/store');
}
$this->load->model('setting/store');der_id = 0) {
$customer_info = $this->getCustomer($customer_id);
if ($customer_info) {
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$customer_id . "', order_id = '" . (int)$order_id . "', points = '" . (int)$points . "', description = '" . $this->db->escape($description) . "', date_added = NOW()");
$this->load->language('mail/customer');
.....
.....
Какое решение заменить его правильно? Я не против, если решение заменить только в addReward функция. Кроме того, я в порядке с до, после, заменить и регулярное выражение.
Я предполагаю, что это может быть проблемой OCMOD.
Задача ещё не решена.
Других решений пока нет …