Перейти к содержанию
ghbynth

При установке любого модуля/расширения на сайте белый экран

Рекомендуемые сообщения

Первый раз "плотно" работаю с opencart, поэтому попрошу "понять и простить", если где-то туплю

Итак пролема: устанавлюваю модуль opencart-2-0-x-export-import-multilingual-2-19 или autocalc_price_option_v2.0.18.2_opencart2 после установки белый экран. Админка работает. При авторизации в админке - сайт начинает работать нормально, но в других браузерах/вкладках инкогнито по прежнему белый экран. Нужно опять же авторизоваться в админке и сайт заработает. Чистка установленных  файлов модуля проблему не решает. Включил отображение ошибок в хтаксес, получаю следующее сообщение 

Fatal error: Call to a member function getModule() on null in /home/c/cy94522/timeweb/public_html/catalog/controller/common/footer_modules.php on line 23

Перезалил данный файл из рабочего бэкапа - проблема не исчезла. Откат БД назад решает проблему. Что не так со строкой 23 понять не могу. Вот код файла footer_modules.php

<?php
class ControllerCommonFooterModules extends Controller {
	public function index() {
		$this->load->model('design/layout');
		$data['cosyone_footer_columns'] = $this->config->get('cosyone_footer_columns');
		

		$layout_id = $this->model_design_layout->getLayoutForAllPages();
		
		$data['modules'] = array();		

		$modules = $this->model_design_layout->getLayoutModules($layout_id, 'footer');
		
		foreach ($modules as $module) {

			$part = explode('.', $module['code']);
			
			if (isset($part[0]) && $this->config->get($part[0] . '_status')) {
				$data['modules'][] = $this->load->controller('module/' . $part[0]);
			}
			if (isset($part[1])) {
				$setting_info = $this->model_extension_module->getModule($part[1]);
				
				if ($setting_info && $setting_info['status']) {
					$data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info);
				}
			}
		}

		return $this->load->view('cosyone/template/common/footer_modules.tpl', $data);
	}
}

Подскажите решение или направление "куда копать"?

Изменено пользователем ghbynth

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уточнение - белый экран появляется не после устоновки модуля, а при обновлении модификаторов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

catalog/controller/common/footer_modules.php - нет в стандартном дистрибутиве, с ним и разбирайтесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем проблема в этом куске кода

foreach ($modules as $module) {

			$part = explode('.', $module['code']);
			
			if (isset($part[0]) && $this->config->get($part[0] . '_status')) {
				$data['modules'][] = $this->load->controller('module/' . $part[0]);
			}
			if (isset($part[1])) {
				$setting_info = $this->model_extension_module->getModule($part[1]);
				
				if ($setting_info && $setting_info['status']) {
					$data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info);
				}
			}
		}

Убираю его, сайт открывается, но переводится в режим техобслуживания. Что интересно, что в нескольких других файлах в этой же папке есть точно такой же код. Но на них почему то не ругается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.