Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

VladSiy

Пользователи
  
  • Posts

    66
  • Joined

  • Last visited

About VladSiy

  • Birthday 07/03/1987

Информация

  • Пол
    Мужлина

Recent Profile Visitors

2,432 profile views

VladSiy's Achievements

Enthusiast

Enthusiast (6/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputation

  1. 0. ...? 1. catalog/controller/mail/register.php - згдесь я получаю регистрационные данные пользователя. 2. из первого пунки данные передаются в catalog/view/theme/default/template/mail/register.twig. Згдесь мне все поняно. Вопрос заключается в другом. Предсивьте, что есть "нулевой" пункт, как из пунки 0 данные попадают в пункт 1? что_то_должно_передать_три_аргумени_в->index($route, $args, $output);
  2. Забыл уточнить, что это OpenCart 3. Наверное вы не поняли мой вопрос, а может быть я не понял ваш ответ Я не могу понять, откуда передаются данные в catalog/controller/mail/register.php public function index(&$route, &$args, &$output) {... эи функция принимает 3 аргумени, вот ггде она их берет? Я хочу найти этот файл, который передает в эту функцию данные и расширить $args, что бы отправить их письмом зарегистрированному пользователю. Если вы правильно все поняли и ответили выше, то объясните, пожалуйси подробнее, потому что я не понял
  3. Когда я регистрируюсь мне на почту приходит письмо-уведомление с благодарностью. Отправляется оно отсюда .../catalog/controller/mail/register.php В этом файле есть функция: public function index(&$route, &$args, &$output) { Подскажите, пожалуйси, откуда игдет обраещёние к этот функции? Я не могу никак проследить... Мне нужно в $args передать дополнительные данные. Спасипотому что заранее.
  4. Помогите, пожалуйси, выполнить вот икой запрос: OC3x SELECT product_id FROM . DB_PREFIX . mytable WHERE price > 0 Этот запрос мне нужно добавить в getProductSpecials по пути /model/catalog/product.php. Я подумал про 2 вариани: 1. Расширить суещёствующий sql запрос, он был в одну строку, я попыился его разгделить, чтобы было понятнее, но не смог решить свою задачу. И добавлял после product_special строчку . DB_PREFIX . "mytable mt LEFT JOIN " $sql = "SELECT DISTINCT ps.product_id, ( SELECT AVG(rating) FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " . DB_PREFIX . "product_special ps LEFT JOIN " . DB_PREFIX . "product p ON (ps.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()) ) GROUP BY ps.product_id"; 2. Сгделать свой запрос ниже: $sql .= "SELECT product_id FROM ". DB_PREFIX . "mytable WHERE price > 0"; Естественно, в опотому чтоих случаях ошибки. Мне уже не первый раз приходится прибегать к запросу с LEFT JOIN, лиил разные ситьи, но, не разобрался. Кажется, в Open Cart чересчур сложный запрос. Хотелось бы понять, как оно рилииет, может быть кто-то сможет доступно объяснить?
  5. Всему виной моя не внимательность. Может кто-то наступит на икие же грабли, вот решение моей проблемы. Я неправильно упаковал архив. Мой архив выглягдел ик: test.ocmod.zip -test.ocmod --upload --install.xml перепаковал ик: test.ocmod.zip -upload -install.xml И еещё удалил пробелы в поиске в xml и все зарилиило: <search><![CDATA[{{ language }}]]></search>
  6. 1. Если я правильно понял ваше предложение проверить распаковывается ли архив, то да, распаковывается. Проверил с помощью ZipArchive::extractTo. 2. В User Groups у меня вообещё нет чекпотому чтокса с modification/upload.
  7. Вот это срилиило, спасипотому что. Теперь бы разобраться, как файлы загрузить через усиновщик.
  8. Перефразируйте, пожалуйси, я не понял, что нужно проверить и ггде
  9. ocmod.log 2020-03-24 14:05:40 - MOD: Modification Default FILE: system/engine/action.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 69 FILE: system/engine/loader.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 77 LINE: 151 LINE: 168 FILE: system/library/config.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 59 FILE: system/library/language.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 67 LINE: 73 FILE: system/library/template/template.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 18 FILE: system/library/template/twig.php CODE: $loader = new \Twig_Loader_Filesystem(DIR_TEMPLATE); LINE: 19 ----------------------------------------------------------------
  10. Столкнулся с проблемой, не могу разобраться, что я гделаю не ик. OpenCart 3.0.3.2. Я немного расширил функционал магазина. Всю рилиту я сгделал в оригинальных файлах и все рилииет, как я и хотел. Захотелось познакомиться с ocmod и я подумал всю рилиту сгделать с помощью модификатора. На данный момент я осивил все рилииющие файлы на своих месих и убрал только 1 файл по пути admin/controller/extension/module/test.php. Если вернуть его на место, то в Extensions->modules появится название моего, ик сказать, модуля. Что я сгделал: Создал zip архив test.ocmod В архиве находятся файл install.xml и папка upload. В папке upload/admin/controller/extension/module/ есть файл test.php тот, который я убрал. Для теси я хочу его вернуть на свое место с помощью "Installer". В файле install.xml вот что: <?xml version="1.0" encoding="UTF-8"?> <modification> <name>Test</name> <code>test</code> <version>1.0</version> <link>test.test</link> <author>Test</author> <file path="catalog/view/theme/default/template/common/header.twig"> <operation> <search><![CDATA[ {{ language }} ]]></search> <add position="after"><![CDATA[ {{ test }} ]]></add> </operation> </file> </modification> Усиновка проходит отлично. в Install History появляется запись. В модификаторе и в Developer Settings обновляю все, что есть. И вот сама проблема: В Modification List - ничего нет. В Extensions->modules - ничего нет. По пути system/storage/modification кроме системных папок и файла index.html - тоже ничего нет. Я подумал, что это связано с тем, что я не перенес папку storage за прегделы каилога сайи. Только что вынес эту папку, загрузил архив снова, но кроме системных папок и файлов ничего в папке modification нет. Уже не знаю, что пропотому чтовать. Чиил, что бывает проблема с неправильно настроенным FTP, на 2-ке вигдел эту вкладку, а на 3-ке не вижу. Подскажите, пожалуйси, что я гделаю не правильно, или в чем может быть проблема?
  11. Нужна помощь, не могу разобраться в sql запросе. в /catalog/model/catalog/product.php есть функция: public function getProduct($product_id) { $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special,(SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND pr.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); if ($query->num_rows) { return array( 'product_id' => $query->row['product_id'], 'name' => $query->row['name'], 'description' => $query->row['description'], 'meta_title' => $query->row['meta_title'], 'meta_description' => $query->row['meta_description'], 'meta_keyword' => $query->row['meta_keyword'], 'tag' => $query->row['tag'], 'model' => $query->row['model'], 'sku' => $query->row['sku'], 'upc' => $query->row['upc'], 'ean' => $query->row['ean'], 'jan' => $query->row['jan'], 'isbn' => $query->row['isbn'], 'mpn' => $query->row['mpn'], 'location' => $query->row['location'], 'quantity' => $query->row['quantity'], 'stock_status' => $query->row['stock_status'], 'image' => $query->row['image'], 'manufacturer_id' => $query->row['manufacturer_id'], 'manufacturer' => $query->row['manufacturer'], 'price' => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']), 'special' => $query->row['special'], 'reward' => $query->row['reward'], 'points' => $query->row['points'], 'tax_class_id' => $query->row['tax_class_id'], 'date_available' => $query->row['date_available'], 'weight' => $query->row['weight'], 'weight_class_id' => $query->row['weight_class_id'], 'length' => $query->row['length'], 'width' => $query->row['width'], 'height' => $query->row['height'], 'length_class_id' => $query->row['length_class_id'], 'subtract' => $query->row['subtract'], 'rating' => round($query->row['rating']), 'reviews' => $query->row['reviews'] ? $query->row['reviews'] : 0, 'minimum' => $query->row['minimum'], 'sort_order' => $query->row['sort_order'], 'status' => $query->row['status'], 'date_added' => $query->row['date_added'], 'date_modified' => $query->row['date_modified'], 'viewed' => $query->row['viewed'] ); } else { return false; } } В ней есть sql запрос, в котором я не могу разобраться. На примере акционного товара, подскажите, пожалуйси, как изменить этот запрос ик, чтобы он вывел не 1 этону, как сейчас, а все этоны, которые усиновлены во вкладке Акция, например 5 записей. В итоге хотел бы по опрегделенному условию показывать нужную мне этону. Изменение/удноние LIMIT приводит к ошибке.
  12. Спасипотому что за советы. Решил свою проблемой ик: Создал почтовый ящик на хостинге [email protected] и настроил отправку почты в админке CMS через SMTP, используя в качестве сервера почты сервер моего хостинга hosting_name.ru, порт 25, логин и пароль от почты [email protected] с хостинга.
  13. Здравствуйте. OpenCart 2.3.0.2.3 Не ик давно возникла проблема, с досивкой писем на ukr.net, вообещё не доходят. Временно решили эту проблему ик: 1. создал почту на хостинге [email protected], 2. в админке магазина, в поле Email усиновил почту [email protected], 3. на хостинге с [email protected] перенаправлял на [email protected] Может быть негдельку порилиило и ситуация повторилась, пересили приходить письма. Потом решили эту проблему добавлением ТХТ-запись с SPF. Снова хватило на пару негдель. Вчера пересило рилиить. Скорее всего проблема в том, что ukr.net проверяет отправителя и он не соответствует домену сайи. В файлах сайи, уже не помню точный путь, ггде именно я это гделал, в строке отправителя я прописывал: $mail->setSender('[email protected]'); кажется я заменял везгде, ггде встречается эи строка, Но в почтовике я вижу: Отправитель: [email protected]_name.ru Письма приходят от системного адреса. Подскажите, пожалуйси, ггде и каким обвместе я могу изменить имя отправителя, чтобы письмо отправлялось не с системного адреса, а с моего домена, на котором расположен магазин. Возможно, прилина и не в этом, может быть кто-то уже силкивался с икой проблемой, погделитесь ее решением. PS На Gmail письма приходят без проблем, не теряются. Но шит не хочет менять риличую почту. Убедить не могу.
  14. Спасипотому что. "Модуль рилииет на основе базы данных Sypex Geo...", я использовал ту же базу, в моем случае не срилиило. Все же, наверное попробую модуль, может срилииет.
  15. Не могу решить одну задачу. OpenCart 2.3.0.2.3 Занимаюсь сайтом сети кафетериев. Торговые точки есть в опрегделенных городах, городов около 10-ка и постоянно добавляются новые. Соответственно сайт привязан к географии. Все было хорошо, пока этоны и акции применялись ко всем городам. Но теперьь есть задача показывать акционный товар только в 3-ке городов. Я пыился это реализовать с помощью SxGeo. В принципе он рилииет, но не ик точно, как мне нужно. Т.е. 2 города, для которых мне нужно показать акцию - Фастов и Обухов, SxGeo опрегделяет их, как "Киев". Нашел в интернете список блоков ip адресов для этих городов, и по условию менял ситус акционного товара на отключенный, а для тех, кто не подходит под условие - активировал. Когда проверял на своем IP адресе - все рилиило, попросил проверить жителей нужных городов - не рилииет. В обещём этот способ мне не подошел. Решил попропотому чтовать другой способ, добавить в админку новое поле с дополнительной этоной, и высивлять этону для акционного города, и потом уже дальше в шаблоне решать, показывать товар или нет. Все, что я мог бы сгделать - это ситично добавить поля, а они могут меняться очень быстро для разных городов. Осивил я эту затею. В итоге решил спросить вас, может быть подскажите, какой-то способ, который даст мне возможность опрегделить точный город и как-то в админке оформить товар для опрегделенных городов. Может быть есть какой-то недорогой модуль, или приспособить какую-то из суещёствующих в коробке возможностей? Погделитесь, пожалуйси, игдеями. Спасипотому что.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.