Помогите исправить ошибку на сайте. Сборка ocStore 2.1.01, при включенном SeoPro (ЧПУ) возникает ошибка: Добавляем товар в корзину, переходим в корзину, жмём на красный крестик удаления из корзины – товар по факту удаляется (если обновить страницу), но остаётся висеть на страничке, при том, что корзина, которая в шапке исправно работает. Обновление кол-ва товара (соседняя кнопка) исправно работает и обновляет страницу. При выключенном SeoPro всё исправно работает, но хочется именно с нормальными ссылками иметь сайт. Подобную проблему я находил в интернете, но решение не работало: forum.opencart-russia.ru/... кроме этого решения я не нашел другого в интернете. Шаблон стандартный, изменений особых не было, включил SeoPro, настроил .htaccess Скорее всего ошибка кроется в common.js Сайт: http://lada-part.com/ URLы все на ЧПУ, включая корзину и оплату...
В общем проблему решил методом тыка, хочется, чтобы пояснили, что я сделал, и не повлияет ли это на работу. В общем в Корзине есть две кнопки, расположенные рядом, обновить (она у меня исправно работала, вводил кол-во товара, жал обновить, товар обновлялся) и соседняя Удалить (она не работала, вернее по факту удаляла, но на странице это отображалось только после обновления страницы) Полез я в файл checkout/cart.tpl Нашёл там строки, отвечающие за эти две кнопки Обновить и Удалить, так было: Код: <button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger" onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i class="fa fa-times-circle"></i></button></span></div></td> Я сменил type="button" у кнопки Удалить, на type="submit" (такой же как у кнопки Обновить) и всё заработало: Код: <button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button> <button type="submit" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger" onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i class="fa fa-times-circle"></i></button></span></div></td> Я делал чисто логически, подумав, что раз этот тип отрабатывает обновление, то почему бы не попробовать присвоить его и кнопке удалить... А теперь, кто понимает, что я натворил, расскажите мне))
Я конечно прошу прощения за некропостинг, но ответов не нашел... Вылетает при попытке создать нового производителя. 2.1.0.1
Я конечно не "гуру" но, немного порывшись в файлах нашел куда вставить зяпятую /admin/model/catalog/manufacturer.php строка 14-15 ... foreach ($data['manufacturer_description'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_description SET manufacturer_id = '" . (int)$manufacturer_id . "', language_id = '" . (int)$language_id . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'"); ... после изменений тест прошел удачно
Нашел еще ошибки в работе с Производителями чтобы доло их не перечислять просто выкладываю листинг кода для обновленного файла /admin/model/catalog/manufacturer.php Код: <?php class ModelCatalogManufacturer extends Model { public function addManufacturer($data) { $this->event->trigger('pre.admin.manufacturer.add', $data); $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer SET name = '" . $this->db->escape($data['name']) . "', sort_order = '" . (int)$data['sort_order'] . "'"); $manufacturer_id = $this->db->getLastId(); if (isset($data['image'])) { $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET image = '" . $this->db->escape($data['image']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); } foreach ($data['manufacturer_description'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_description SET manufacturer_id = '" . (int)$manufacturer_id . "', language_id = '" . (int)$language_id . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'"); } if (isset($data['manufacturer_store'])) { foreach ($data['manufacturer_store'] as $store_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_to_store SET manufacturer_id = '" . (int)$manufacturer_id . "', store_id = '" . (int)$store_id . "'"); } } if (isset($data['keyword'])) { $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'manufacturer_id=" . (int)$manufacturer_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'"); } $this->cache->delete('manufacturer'); $this->event->trigger('post.admin.manufacturer.add', $manufacturer_id); return $manufacturer_id; } public function editManufacturer($manufacturer_id, $data) { $this->event->trigger('pre.admin.manufacturer.edit', $data); $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET name = '" . $this->db->escape($data['name']) . "', sort_order = '" . (int)$data['sort_order'] . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); if (isset($data['image'])) { $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET image = '" . $this->db->escape($data['image']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); } $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); foreach ($data['manufacturer_description'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_description SET manufacturer_id = '" . (int)$manufacturer_id . "', language_id = '" . (int)$language_id . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'"); } $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_to_store WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); if (isset($data['manufacturer_store'])) { foreach ($data['manufacturer_store'] as $store_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_to_store SET manufacturer_id = '" . (int)$manufacturer_id . "', store_id = '" . (int)$store_id . "'"); } } $this->db->query("DELETE FROM " . DB_PREFIX . "url_alias WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'"); if ($data['keyword']) { $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'manufacturer_id=" . (int)$manufacturer_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'"); } $this->cache->delete('manufacturer'); $this->event->trigger('post.admin.manufacturer.edit', $manufacturer_id); } public function deleteManufacturer($manufacturer_id) { $this->event->trigger('pre.admin.manufacturer.delete', $manufacturer_id); $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_to_store WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "url_alias WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); $this->cache->delete('manufacturer'); $this->event->trigger('post.admin.manufacturer.delete', $manufacturer_id); } public function getManufacturer($manufacturer_id) { $query = $this->db->query("SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "') AS keyword FROM " . DB_PREFIX . "manufacturer WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); return $query->row; } public function getManufacturerDescriptions($manufacturer_id) { $manufacturer_description_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); foreach ($query->rows as $result) { $manufacturer_description_data[$result['language_id']] = array( 'meta_title' => $result['meta_title'], 'meta_h1' => $result['meta_h1'], 'meta_description' => $result['meta_description'], 'meta_keyword' => $result['meta_keyword'], 'description' => $result['description'] ); } return $manufacturer_description_data; } public function getManufacturers($data = array()) { $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer"; $sql = "SELECT c.manufacturer_id, c.name, c.sort_order FROM " . DB_PREFIX . "manufacturer c LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (c.manufacturer_id = md.manufacturer_id) WHERE md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if (!empty($data['filter_name'])) { $sql .= " AND name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; } $sort_data = array( 'name', 'sort_order' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } //$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } public function getManufacturerStores($manufacturer_id) { $manufacturer_store_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_store WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); foreach ($query->rows as $result) { $manufacturer_store_data[] = $result['store_id']; } return $manufacturer_store_data; } public function getTotalManufacturers() { $sql2 = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "manufacturer c LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (c.manufacturer_id = md.manufacturer_id) WHERE md.language_id = '" . (int)$this->config->get('config_language_id') . "'"; //$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "manufacturer"); $query = $this->db->query($sql2); return $query->row['total']; } }
Отключил в админке банеры "Производители" и "Слайдшоу на главной". Но банеры по прежнему на месте... У кого-то были такие проблемы? Что делать? Версия ocStore 2.1.0.1.1 Отключаем банеры: а они остаются... P.S. Кэш чистил, страницу обнавлял, локальный сервер перезагружал, комп тоже, с бубном танцевал.
Спросите у авторов сборки. Мы конечно можем помочь, но не дело это разбираться в ошибках сборки, где тысячу изменений от оригинала. попробуйте убрать в макетах с макета Home данные модули.
Влад, спасибо! Меня недавно из роддома выписали ) поэтому для меня новость, что ocStore - это не совсем OpenCart ) Подскажите пожалуйста стабильную сборку официального OpenCart переведенного на русский.
ну вы же находитесь на данном форуме, тут стабильно и официально http://opencart-russia.ru/ Новости о релизах всегда тут http://forum.opencart-russia.ru/forums/news/
Приветствую. Есть ocStore-2.1.0.1 Есть админка. Есть производители, которых в базе больше, чем отображается. При внесении нового производителя общее кол-во увеличивается. Подскажете где копать?
Ну как бы да. В нашей банде, помогают, если отказали официально. А так, зачем копаться в чужом, когда есть свое родное!! Пусть за свои ошибки сами отвечают! ))
Всем доброго дня, столкнулся с проблемой при добавление товару категории или подкатегории, купил шаблон на официальном сайте разработчика шаблонов, он английский полностью, версия opencart 2.0.3 . У меня стояла до этого 2.0.1 соответственна я установил авто установку полностью купленного шаблона, мало того что я его сижу перевожу, так у меня еще куча проблем с этим вылазиет!!! за 48 БАКСОВ я сижу теперь как пчелка и строчу опять но новой категории и товары!!! А у меня проблема за проблемой... Отбросим мои смуты и перейду к краткому вопросу: У версия opencart 2.0.1 нуленая установка (там SEO PRO + удобный интерфейс добавление подкатегорий в товаре в виде ЧЕК БОКСОВ полным списком фото прилагаю.) Версия 2,0,3 располагает стандартной вариант автозаполнения который как упертый баран не хочет добавлять ПОДКАТЕГОРИЮ ТОВАРУ!! ((( Попытка перекинуть с одного в другой простой заменой не помогает ошибки так и прут , там у меня еще была такая графа к добавлению H1 после ТИТЛ... так вот ее тоже нету в 2,0,3.
за ошибками к авторам сборки. Многие шаблоны и модули не совместимы со сборками типа оксторе или окшопа
Они говорят покупай расширение на сайте opencart которое делает подобное, стоит баксов а подобного там нет, http://www.opencart.com/index.php?route=extension/extension/info&extension_id=19999 вот это сие чудо , но ведь в сборке которую выложили нуленую уже включено это каким то макаром дописали просто в файле product.php который в админке. Я просто не понимаю что там нужно и какому блоку дописать..... может просто копировать с 2,0,1 в 2,0,3
Если категория пустая и туда добавить 1 товар - то он отображается. Последующие товары, если добавлять их, не отображаются. Если отключить первый товар , то появится другой товар, но только 1. что делать?