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

Ошибка Notice: Undefined offset: 3


Buggy

Recommended Posts

Добрый день.
Opencart Version 2.3.0.2 (trs-2.3.0.0).
Модифицированный не мной шаблон. Английская версия была установлена ранее, я ёё просто активировал. После переключения на английский язык, сайт выдаёт ошибки:
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 31
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290

Эти строки выглядят так:

line 31:  $data['title']	     = $settings['title'][$this->config->get('config_language_id')];
line 290 это строка 'name' => $tab['name'][$this->config->get('config_language_id')], в массиве
$data['product_tabs'][] = 
        [
          'name' 	            => $tab['name'][$this->config->get('config_language_id')],
          'href'				=> $href,
          'products'          => $product_data,
          'banner'            => $banner_data,
          'pagination_data'   => $product_total ? $this->getPagination($product_total, $page, $limit, $tab['product']['type']) : false,
          'btn_more_status'   => $bnt_more_status && $product_total && !($page == ceil($product_total / $limit)),
          'pagination_status' => $pagination_status && $product_total
        ];

Поковырявшись в интернете, я заполнил поля в товарах английской версии латиницей (они уже были заполнены, но на русском), но это не помогло.
Что делать?

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


23 минуты назад, Buggy сказал:

Добрый день.
Opencart Version 2.3.0.2 (trs-2.3.0.0).
Модифицированный не мной шаблон. Английская версия была установлена ранее, я ёё просто активировал. После переключения на английский язык, сайт выдаёт ошибки:
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 31
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290
Notice: Undefined offset: 3 in /home/srv113274/darin7.ru/catalog/controller/extension/module/ap_products_listing.php on line 290

Эти строки выглядят так:


line 31:  $data['title']	     = $settings['title'][$this->config->get('config_language_id')];
line 290 это строка 'name' => $tab['name'][$this->config->get('config_language_id')], в массиве
$data['product_tabs'][] = 
        [
          'name' 	            => $tab['name'][$this->config->get('config_language_id')],
          'href'				=> $href,
          'products'          => $product_data,
          'banner'            => $banner_data,
          'pagination_data'   => $product_total ? $this->getPagination($product_total, $page, $limit, $tab['product']['type']) : false,
          'btn_more_status'   => $bnt_more_status && $product_total && !($page == ceil($product_total / $limit)),
          'pagination_status' => $pagination_status && $product_total
        ];

Поковырявшись в интернете, я заполнил поля в товарах английской версии латиницей (они уже были заполнены, но на русском), но это не помогло.
Что делать?

Ошибка говорит о том, что в 31 строке в массиве $settings['title'] не существует ключа 3 (ключ 3 это идентификатор языка), про строку 290 примерно то же самое, но для $tab['name']. Можно предположить, что это код модуля шаблона - и он сделан косячно, потому что имеет по коду вот такие вот узкие места, которые в случае с добавлением/изменением языка требуют доработок в коде.

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

1 минуту назад, OtezVikentiy сказал:

в случае с добавлением/изменением языка требуют доработок в коде.

не требуют
а требуют заполнения нужных языковых полей(значений) в шаблоне (модуле)

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

2 минуты назад, chukcha сказал:

а требуют заполнения нужных языковых полей(значений) в шаблоне (модуле)

Поля и были заполнены на русском. Я их перезаполнил латиницей. Как минимум обязательные поля заполнены.

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


6 минут назад, Buggy сказал:

Поля и были заполнены на русском. Я их перезаполнил латиницей. Как минимум обязательные поля заполнены.

Вы уверены, что у вас все поля заполнены
Ошибка не в товарах а в модуле, например с названием табов
 

 

43 минуты назад, Buggy сказал:

я заполнил поля в товарах английской версии

 

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

9 минут назад, chukcha сказал:

не требуют
а требуют заполнения нужных языковых полей(значений) в шаблоне (модуле)

 

4 минуты назад, Buggy сказал:

Поля и были заполнены на русском. Я их перезаполнил латиницей. Как минимум обязательные поля заполнены.


@chukcha Вот я об этом и говорю, что вроде как пользователь всё заполнил, а всё равно фаталы. При написании кода стоит либо ставить жесткие валидаторы либо не полагаться на то, что пользователь все заполнил и ставить isset и продумывать красные сценарии ))) То есть судя по коду получается, что ключ в массиве существует, но видимо есть кейс, когда это не так. Соответственно - это баг и нужны доработки по коду (это идеальный сценарий конечно же). Можно и расковырять и что-то дозаполнить или подставить костыли - это тоже всегда выход из ситуации. А так вообще, будь я разрабом модуля - я б все же доработочку то сделал. )))

P.S.: если вдруг @chukcha вы разработчик этого модуля, я не пытаюсь кидаться какашками или говорить что я святой и пишу без багов, я тоже косячу периодами :grin: Всё предусмотреть довольно сложно )))

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

UPD: Сайт работает нормально. Поля, которые я заполнил латиницей нормально выводятся на сайте. Только вот сообщения вверху...

 

20 минут назад, chukcha сказал:

а требуют заполнения нужных языковых полей(значений) в шаблоне (модуле)

Поля и были заполнены на русском. Я их перезаполнил латиницей. Как минимум обязательные поля заполнены.

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


5 минут назад, Buggy сказал:

UPD: Сайт работает нормально. Поля, которые я заполнил латиницей нормально выводятся на сайте. Только вот сообщения вверху...

 

Поля и были заполнены на русском. Я их перезаполнил латиницей. Как минимум обязательные поля заполнены.

Попробуйте заполнить ВСЕ возможные поля, не только обязательные.

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

9 минут назад, OtezVikentiy сказал:

Попробуйте заполнить ВСЕ возможные поля, не только обязательные.

Возможные поля только эти эти

Мета теги и на русском пустые. А текстовый редактор не думаю, что нужно писать на английском обязательно для решения проблемы.

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


27 минут назад, OtezVikentiy сказал:

вы разработчик этого модуля,

2 минуты назад, Buggy сказал:

Возможные поля только эти

НЕТ
Есть какой нибудь модуль кастомных табов

 

 

27 минут назад, OtezVikentiy сказал:

если вдруг @chukcha вы разработчик этого модуля,

НЕТ

Есть какая-то надстройка с табами,  в которой есть языуовые поля

И в нее нужно зайти и нажать сохранить,
А вои чтобы ее найти нужно...смотреть в код, откуда ноги растут, но явно не из карточки товара

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

Проблема решена.

Нужно было всего лишь:

- Заполнить все поля всего сайта на английском в админке.

- Определить все переменные в файлах /catalog/controller

- Прописать переменные в шаблонах /catalog/view/theme/default/template 

- Прописать переводы в словарях /catalog/language/en-gb и ru-ru

- Сделать всё тоже самое только в папке с модифицированными футером и шапкой в папке /system/storage/modification/catalog

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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