Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

nashivan

Newbie
  
  • Posts

    31
  • Joined

  • Last visited

Everything posted by nashivan

  1. добавил в header.twig эту строку и заработало!
  2. Например есть шаблон language.twig, он выводится в шапке через header.twig : {{ language }} Мне нужно создать language_mobile.twig Я создал файл language_mobile.twig, в header.twig прописал {{ language_mobile }} в контролерах добавил файл language_mobile.php, скопировал код из language.php, вставил в language_mobile.php и поменял только эту строку: return $this->load->view('common/language', $data); на return $this->load->view('common/language_mobile', $data); Но на сайте изменения не отображаются. Что я делаю не так, что я упустил?
  3. товар должен просто выводится на страницах основной категории, но при этом состоять только в одной категории Sent from my iPhone using Tapatalk
  4. товар должен быть только в одной категории, так написано в тз Sent from my iPhone using Tapatalk
  5. поставил бесплатный модуль seopro от opencart3x и все заработало Sent from my iPhone using Tapatalk
  6. Установлен opencart russia 3.0.3.8. php 7.3 Есть структура каталога: Каталог > Категория > Подкатегория В Подкатегории лежит Товар1 Мне необходимо сделать, чтобы Товар1 выводился не только в Подкатегории, но и в Категории Я нашел простой модификатор, который позволяет сделать это: Теперь товар выводится и в основной категории, но url товара изменился Был: https://website.com/katalog/category/sub-category/product1 - если кликнуть на товар из подкатегории Стал: https://website.com/katalog/category/product1 - если кликнуть на товар из основной категории. Проблема: если перейти из Основной Категории на страницу с Товаром1, то будет ошибка: Товар не найден! Если перейти на Товар1 из Подкатегории, то ошибки не будет. Вопрос: как правильно сделать так, чтобы Товар1 из Подкатегории выводился в Основной Категории, но при этом не менял свой url и оставался: https://website.com/katalog/category/sub-category/product1 Заранее спасибо за ответ!
  7. хорошо, еще один вопрос, чтобы применились изменения css нужно прожать ctrl+f5 в браузере и они появляются. как быть обычным пользователям? они же не делают жесткую очистку кеша и изменения у них не появляются.
  8. Я делаю изменения в файле header.twig, но после этого мне нужно в ручную обновить модификации в админке, чтобы изменения применились. Если я изменяю файлы css, то мне не нужно этого делать. Можно ли как-то сделать автоматическое обновление модификаций, чтобы постоянно не отвлекаться? opencart 3x
  9. Есть размерная сетка на opencart 2.3, ее нужно повторить но уже на opencart 3: на двойке она сделана на чистом php в tpl файле (product.tpl), но opencart 3 поддерживает только twig формат, поэтому скопировать просто php код на тройку не получится (product.twig) Вот код на opencart 2.3: <table> <?php $s1 = array(); $s2 = array(); $arr = array(); foreach ($option['product_option_value'] as $option_value) { list($a, $b) = explode("x", $option_value['name']); $s1[] = intval($a); $s2[] = intval($b); $arr[intval($a)][] = array(intval($b), $option_value['product_option_value_id']); } $id = $option['product_option_id']; $s1 = array_unique($s1); rsort($s1); $s2 = array_unique($s2); sort($s2); foreach ($s1 as &$value) { echo "<tr>"; echo "<td>".$value."</td>"; foreach ($s2 as &$value2) { echo "<td>"; $p = false; foreach ($arr[$value] as &$value3) { if($value3[0] == $value2){ $p = true; $val = $value3[1]; } } if ($p) { echo "<label><input type='radio' name='option[".$id."][]' value='".$val."' required /><span class='stock' val='".$val."' name ='".$value."x".$value2."' vid='".$id."'></span></label>"; } else{ echo "<span class='out-stock'></span>"; } echo "</td>"; } echo "</tr>"; } echo "<tr><td></td>"; foreach ($s2 as &$value) { echo "<td>".$value."</td>"; } echo "</tr>"; ?> </table> В админке опции прописаны вот так: 170x52, 170x54, 170x60, 176x52, 176x54, 176x60, 182x52, 182x54, 182x60 (пример) Пытался воспользоваться онлайн сервисом http://phptotwig.com/ , но выдает ошибку на строке с explode Пытался адаптировать сам этот код под твиг, но опыта в этом мало, вот что получилось: <table> <tbody> {% for option_value in option.product_option_value %} <tr> <td>{{ option_value.name | split('x', 2)[0] }}</td> <td><label><input type="radio" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" required=""><span class="stock" val="{{ option_value.product_option_value_id }}" name="{{ option_value.name }}" vid="402"></span></label></td> </tr> {% endfor %} <tr> <td></td> {% for option_value in option.product_option_value %} <td>{{ option_value.name | split('x', 2)[1] }}</td> {% endfor %} </tr> </tbody> </table> Может есть модуль для такой сетки? Или лучше уже допилить код? Подскажите, пожалуйста, в какую сторону нужно копать.
  10. Копирую в контролере по принципу как и у product.php в category.php После: if ($this->config->get('config_tax')) { $tax = $this->currency->format($tax_price, $this->session->data['currency']); } else { $tax = false; } Это: $discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']); $data['discounts'] = array(); foreach ($discounts as $discount) { $data['discounts'][] = array( 'quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']) ); } Летят нотисы: Как вывести скидки в opencart 3 на страницу категории? Может кто-то сталкивался с этим?
  11. спасибо, добавил в контроллер $data['products_all'] = $this->model_catalog_product->getTotalProducts($filter_data); и вывел в шаблон, все работает
  12. честно, думал, что до моей проблемы с этим кто-то уже сталкивался. если будет время до запилю простой ocmod и выложу сюда
  13. В admin/view/template/catalog/product_form.tpl после: html += ' <td class="text-right"><input type="text" name="product_discount[' + discount_row + '][price]" value="" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>'; это html += ' <td class="text-right"><input type="text" name="product_discount[' + discount_row + '][price2]" value="" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td>'; Все работает, всем спасибо)
  14. почему не выводит поле, если нажать на добавить (+), не понимаю:
  15. в catalog/controller/product/product.php после 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), это 'price2' => $this->currency->format($this->tax->calculate($discount['price2'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']), теперь выводит
  16. добавил в phpmyadmin столбец price2 с такими же параметрами как и у price - ошибка пропала. осталось две проблемы: и не выводит:
  17. после ввода ошибка и сохранения ошибка 500
  18. Вот, что я сделал В admin/view/template/catalog/product_form.tpl после <td class="text-right"><?php echo $entry_price; ?></td> это <td class="text-right">Старая цена</td> после <td class="text-right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][price]" value="<?php echo $product_discount['price']; ?>" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td> это <td class="text-right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][price2]" value="<?php echo $product_discount['price2']; ?>" placeholder="<?php echo $entry_price; ?>" class="form-control" /></td> В admin/controller/catalog/product.php после 'price' => $product_discount['price'], это 'price2' => $product_discount['price2'], В /admin/model/catalog/product.php вместо (57 строка): $this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'"); это $this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', price2 = '" . (float)$product_discount['price2'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'"); вместо (196 строка): $this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'"); это $this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET product_id = '" . (int)$product_id . "', customer_group_id = '" . (int)$product_discount['customer_group_id'] . "', quantity = '" . (int)$product_discount['quantity'] . "', priority = '" . (int)$product_discount['priority'] . "', price = '" . (float)$product_discount['price'] . "', price2 = '" . (float)$product_discount['price2'] . "', date_start = '" . $this->db->escape($product_discount['date_start']) . "', date_end = '" . $this->db->escape($product_discount['date_end']) . "'"); в tpl вывести <?php echo $discount['price2']; ?> ocstore 2.3
  19. желание странное, согласен, но все таки, интересно было бы, как это реализовать можно
×
×
  • 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.