Здравствуйте. Тестировал версию 3.0.3.7 и заметил ошибку, при попытке зайти на страницу списка производителей получаю ошибку: [19-Feb-2021 03:10:06 Europe/Kiev] PHP Fatal error: Uncaught Error: Call to a member function resize() on null in /public_html/system/storage/modification/catalog/controller/product/manufacturer.php:45 Stack trace: #0 /public_html/system/storage/modification/system/engine/action.php(79): ControllerProductManufacturer->index() #1 /public_html/system/engine/router.php(67): Action->execute(Object(Registry)) #2 /public_html/system/engine/router.php(56): Router->execute(Object(Action)) #3 /public_html/system/framework.php(169): Router->dispatch(Object(Action), Object(Action)) #4 /public_html/system/startup.php(104): require_once('/...') #5 /public_html/index.php(19): start('catalog') #6 {main} thrown in /public_html/system/storage/modification/catalog/controller/product/manufacturer.php on line 45 В этом файле по этому пути, в строке 45 находится: 'logo' => $this->model_tool_image->resize($result['image'], 100, 100), Что здесь не так, как решить? В версии 3.0.3.6 всё работало с тем же набором модулей...
Странно. Не должно быть такого. Наборы модулей и поиск подобных ошибок, совсем не для данной темы. Смотрите модификатор, какую строчку нашел, а какую нет и корректируйте для правильной работы.
В том то и дело, проверил все модификаторы и поправил изменённые строки, так как при поиске отличий (сравнении файлов 3.0.3.6 и 3.0.3.7) заметно что довольно таки много, пусть и не сильно, но изменённых строк, соответственно модификаторы вполне могли просто не найти нужные им строчки. Плюс ко всему было много ошибок в логе модификаций, решил всё перебрать. Теперь ошибок нет, все строки соответствуют и всё находит, но страница производителей как не работала так и не работает. При отключении шаблона и активации дефолтного - всё работает корректно, но в дефолтном логотип производителя в списке не выводится, я так понимаю это "фича" самого шаблона. Что делать - хз, в модификаторе более 3000 строк, и около десятка тех, что хоть как-то связаны (похожи) на ту, которая и вызывает эту ошибку.. Автор шаблон забросил судя по всему, последняя версия заточена под 3.0.2.0, а жаль, шаблон хороший и при этом бесплатный. Ссылка на шаблон https://www.opencart.com/index.php?...er_category_id=1&filter_license=0&sort=rating
Вставь вот этот код в модификатор, в конце где нибудь <file path="catalog/controller/product/manufacturer.php"> <operation> <search><![CDATA[foreach ($results as $result) {]]></search> <add position="after"><![CDATA[ $this->load->model('tool/image'); ]]></add> </operation> </file>
Ошибка пропала, спасибо) А этот код нужно вставлять после всех строчек "foreach ($results as $result) {" (в файле два совпадения), или может быть только к одной?
Только что попробовал добавить Ваш код к первой по списку строчке, в этом же блоке и находится та строка из-за которой появлялась ошибка, добавляется она модификатором шаблона. Может сделать так, что бы в итоге код имел такой вид? foreach ($results as $result) { $this->load->model('tool/image'); Ваш код if (is_numeric(utf8_substr($result['name'], 0, 1))) { $key = '0 - 9'; } else { $key = utf8_substr(utf8_strtoupper($result['name']), 0, 1); } if (!isset($data['categories'][$key])) { $data['categories'][$key]['name'] = $key; } $data['categories'][$key]['manufacturer'][] = array( 'name' => $result['name'], 'logo' => $this->model_tool_image->resize($result['image'], 100, 100), Строчка которая вызвала ошибку 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id']) ); } Или обязательно нужно добавить ко всем совпадающим строкам?
Понял, спасибо) С учётом всех модификаций "$this->model_tool_image->resize(........." используется во всех блоках "foreach ($results as $result) {".