Black#FFFFFF
Постоялец
- Регистрация
- 19 Июл 2007
- Сообщения
- 228
- Реакции
- 172
Встретился с такой ошибкой касаемо загрузки атрибутов:
Создаю столбцы для атрибутов, название столбца соответственно является названием атрибута товара. Если в столбце любого атрибута отсутствовало значение, то выскакивала ошибка и товар не обрабатывался. Решилось все в файле admin\model\tool\universal_import.php
Нужно найти и задействовать строки (они закомментированы автором, по умолчанию)
foreach ($values_array as $current_key => &$value) {
for ($i = 0; $i <= count($values_array); $i++) {
А эти строки закомментировать:
for($i = 0; $i < count($values_array); ++$i) {
$current_key = $i;
$value = $values_array[$i];
_______________________________________
Получится все так:
$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();
// Две строки были отключены
foreach ($values_array as $current_key => &$value) {
for ($i = 0; $i <= count($values_array); $i++) {
// Было по умолчанию, если столбце отсутствовал параметр, была ошибка и товар пропускался
// for($i = 0; $i < count($values_array); ++$i) {
// $current_key = $i;
// $value = $values_array[$i];
if (isset($header_keys[$current_key])) {
$header_key = $header_keys[$current_key];
}
Затем найти строку 3854 и добавить скобку:
} // Добавил для строки 3663
Ай-яй-яй!
Тем самым Вы дублируете проверку атрибутов. То есть на 46 атрибутов будет сколько дублей в двух циклах?
Вам превьюв показывает сколько дублей? задвоения атрибутов?
Строки до этого были верные
Все, что требовалось, это сделать вот так:
PHP:
for($i = 0; $i < count($values_array); ++$i) {
$current_key = $i;
if(isset($values_array[$i]))
$value = $values_array[$i];
else
$value = '';
PHP:
for($i = 0; $i < count($values_array); ++$i) {
$current_key = $i;
if (!isset($values_array[$i]))
continue;