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

Ошибка


seolink

Recommended Posts

В шапке сайта вылезли ошибки после переноса сайта следующего содержания:

Warning: Invalid argument supplied for foreach() in /home/h31462/data/www/Сайт/catalog/controller/common/column_left.php on line 66

 

Warning: Invalid argument supplied for foreach() in /home/h31462/data/www/САЙТ/catalog/controller/common/column_right.php on line 66

 

Warning: Invalid argument supplied for foreach() in /home/h31462/data/www/САЙТ/catalog/controller/common/content_top_1_3.php on line 49

 

этот кусок кода

foreach ($modules as $module) {
					if ($module['layout_id'] == $layout_id && $module['position'] == 'column_left' && $module['status']) {
						$module_data[] = array(
							'code'       => $extension['code'],
							'setting'    => $module,
							'sort_order' => $module['sort_order']
						);				
					}
				}

Может кто сталкивался с подобной проблемой, подскажите как устранить?

Змінено користувачем seolink
Надіслати
Поділитися на інших сайтах


У Вас проблема с переменной $modules. Такого рода ошибка возникает, если убрать проверку

if ($modules) 
{...} 

Покажите код в файле catalog/controller/common/column_left.php ДО 66-й строки.

 

Или файл целиком под спойлером. 

Надіслати
Поділитися на інших сайтах


class ControllerCommonColumnLeft extends Controller {
protected function index() {
$this->load->model('design/layout');
$this->load->model('catalog/category');
$this->load->model('blog/news');
$this->load->model('blog/article');
$this->load->model('catalog/manufacturer');
$this->load->model('catalog/product');
$this->load->model('catalog/information');

if (isset($this->request->get['route'])) {
$route = (string)$this->request->get['route'];
} else {
$route = 'common/home';
}

$layout_id = 0;

if ($route == 'product/category' && isset($this->request->get['path'])) {
$path = explode('_', (string)$this->request->get['path']);

$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
}

if ($route == 'blog/news' && isset($this->request->get['blid'])) {
$blid = explode('_', (string)$this->request->get['blid']);

$layout_id = $this->model_blog_news->getCategoryLayoutId(end($blid));
}

if ($route == 'blog/article' && isset($this->request->get['article_id'])) {
$layout_id = $this->model_blog_article->getArticleLayoutId($this->request->get['article_id']);
}

if ($route == 'product/manufacturer/info' && isset($this->request->get['manufacturer_id'])) {
$layout_id = $this->model_catalog_manufacturer->getManufacturersLayoutId($this->request->get['manufacturer_id']);
}

if ($route == 'product/product' && isset($this->request->get['product_id'])) {
$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
}

if ($route == 'information/information' && isset($this->request->get['information_id'])) {
$layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
}

if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}

if (!$layout_id) {
$layout_id = $this->config->get('config_layout_id');
}

$module_data = array();

$this->load->model('setting/extension');

$extensions = $this->model_setting_extension->getExtensions('module');

foreach ($extensions as $extension) {
$modules = $this->config->get($extension['code'] . '_module');

if ($modules) {
foreach ($modules as $module) {
if ($module['layout_id'] == $layout_id && $module['position'] == 'column_left' && $module['status']) {
$module_data[] = array(
'code' => $extension['code'],
'setting' => $module,
'sort_order' => $module['sort_order']
);
}
}
}
}

$sort_order = array();

foreach ($module_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}

array_multisort($sort_order, SORT_ASC, $module_data);

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

foreach ($module_data as $module) {
$module = $this->getChild('module/' . $module['code'], $module['setting']);

if ($module) {
$this->data['modules'][] = $module;
}
}

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/column_left.tpl')) {
$this->template = $this->config->get('config_template') . '/template/common/column_left.tpl';
} else {
$this->template = 'default/template/common/column_left.tpl';
}

$this->render();
}
}
?>
Змінено користувачем seolink
Надіслати
Поділитися на інших сайтах


Для какого-то модуля функция $this->config->get($extension['code'] . '_module') возвращает значение скалярного типа , хотя должна возвращать массив, пусть и пустой.

 

Чтобы узнать, какой это модуль, ВРЕМЕННО после строки 

if ($modules) {

добавьте строки

if (!is_array($modules))
{
print_r('___'); 
print_r($extension['code'] . '_module');
print_r('___'); 
print_r($modules); 
print_r('___'); 
} 

Может сбиться кодировка, но это - ВРЕМЕННО.

Результаты - в студию.

Надіслати
Поділитися на інших сайтах


Данный метод работает. Показал мне в верху модуль. Вернул назад файл как был. Зашел в модуль увидел снова ошибку в нем. Пересохранился. Ошибка пропала.

 

Огромное спасибо. Если нужен положительный отзыв пишите, дам свою рекомендацию.

Надіслати
Поділитися на інших сайтах


...

;)

 

ОБНОВЛЕНИЕ

(обновление модуля или перенос с места (домена) на другое место (например с localhost на реальный сервер))

....

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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