Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


ghbynth

Recommended Posts

Первый раз "плотно" работаю с 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
Надіслати
Поділитися на інших сайтах


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

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.