Добрый день. Подскажите, как добавить правило в php для устранения ошибки: Notice: Undefined index: image in /system/storage/modification/catalog/controller/account/order.php on line 346 Знаю, что данная ошибка возникает из-за не корректной ссылки на изображение после изменения или удаления товара. Думал поможет способ с заменой изображения, поэтому для сайта в order_info.tpl изменил код. <?php if ($product['image']) { ?> <a href="<?php echo $product['href']; ?>" target="_blank"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-thumbnail" /> </a> <?php } else { ?> <span class="img-thumbnail list"><i class="fa fa-camera fa-2x"></i></span> <?php } ?>
Наверно нет такого правила. Чтобы решить проблему, нужно понять откуда она... особенно что там модификаторы наделали и потом уже что то делать.
<?php if ($product['image']) { ?> замените на <?php if (!empty($product['image'])) { ?> НО! это просто устраняет последствия, а не решение проблемы. как вам уже написали, нужно смотреть откуда что передается и что наделали модификаторы
Тут надо прямо красными буквами писать Иначе многие делаю правки в кеше и забивают. А кто то приходит поправить одну строчку (например я) и обновляет кеш. В итоге все ломается и заказчик с пеной у рта, кричит и топает и говорит что "все сломали, собаки, давайте делайте исправляйте итд..."
я обычно перед правками незнакомых сайтов делаю еще и бэкап кэша модификаторов. в случае подобных "разработчиков" можно просто вернуть файлы на место
Объясню. На сайте ранее был товар который купили только раз. Данный товар отображался в ордере лк покупателя корректно. Но больше этот товар не покупали, я решил удалить карточку товара. После этого в ордере клиента появилась данная ошибка. Пытаюсь устранить. В файле в order_info.tpl изменил код. <?php if ($product['image']) { ?> <a href="<?php echo $product['href']; ?>" target="_blank"><img src="<?php echo $product['image']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-thumbnail" /> </a> <?php } else { ?> <span class="img-thumbnail list"><i class="fa fa-camera fa-2x"></i></span> <?php } ?> Ошибку убрать удалось, но теперь не подгружает (не отображается) картинки других товаров. Убрал ошибку таким способом, в контроллере order.php: $this->load->model('tool/image'); $product_qimage = $this->db->query("SELECT image FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product['product_id'] . "'"); // $product_image = $product_qimage->row['image']; - закомментировал if (is_file(DIR_IMAGE . $product['image'])) { $image = $this->model_tool_image->resize($product['image'], 50, 50); } else { $image = $this->model_tool_image->resize('no_image.png', 50, 50); } $data['products'][] = array( 'image' => $product['image'], // для фото 'href' => $this->url->link('product/product', 'product_id=' . $product['product_id']), //'thumb' => $this->model_tool_image->resize($product_image, 50, 50), - закомментировал 'name' => $product['name'], 'model' => $product['model'], 'option' => $option_data, 'quantity' => $product['quantity'], 'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), 'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), 'reorder' => $reorder, 'return' => $this->url->link('order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true) ); После изменений обновляю модификатор и кеш
Код: if ($product_qimage->num_rows) { $product_image = $product_qimage->row['image']; } else { $product_image = false; } Код: 'thumb' => $product_image ? $this->model_tool_image->resize($product_image, 50, 50) : '', ну и как-то по аналогии и другие переменные. у вас почему-то 2 картинки из разных переменных используются. формируется ссылка на товар, хотя он удалён и т.д.