Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

nashivan

Новачок
  
  • Публікації

    31
  • З нами

  • Відвідування

Усі публікації користувача nashivan

  1. Например есть шаблон 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); Но на сайте изменения не отображаются. Что я делаю не так, что я упустил?
  2. товар должен просто выводится на страницах основной категории, но при этом состоять только в одной категории Sent from my iPhone using Tapatalk
  3. товар должен быть только в одной категории, так написано в тз Sent from my iPhone using Tapatalk
  4. поставил бесплатный модуль seopro от opencart3x и все заработало Sent from my iPhone using Tapatalk
  5. Установлен 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 Заранее спасибо за ответ!
  6. хорошо, еще один вопрос, чтобы применились изменения css нужно прожать ctrl+f5 в браузере и они появляются. как быть обычным пользователям? они же не делают жесткую очистку кеша и изменения у них не появляются.
  7. Я делаю изменения в файле header.twig, но после этого мне нужно в ручную обновить модификации в админке, чтобы изменения применились. Если я изменяю файлы css, то мне не нужно этого делать. Можно ли как-то сделать автоматическое обновление модификаций, чтобы постоянно не отвлекаться? opencart 3x
  8. Есть размерная сетка на 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> Может есть модуль для такой сетки? Или лучше уже допилить код? Подскажите, пожалуйста, в какую сторону нужно копать.
  9. Копирую в контролере по принципу как и у 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 на страницу категории? Может кто-то сталкивался с этим?
  10. спасибо, добавил в контроллер $data['products_all'] = $this->model_catalog_product->getTotalProducts($filter_data); и вывел в шаблон, все работает
  11. честно, думал, что до моей проблемы с этим кто-то уже сталкивался. если будет время до запилю простой ocmod и выложу сюда
  12. В 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>'; Все работает, всем спасибо)
  13. почему не выводит поле, если нажать на добавить (+), не понимаю:
  14. в 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']), теперь выводит
  15. добавил в phpmyadmin столбец price2 с такими же параметрами как и у price - ошибка пропала. осталось две проблемы: и не выводит:
  16. Вот, что я сделал В 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
  17. желание странное, согласен, но все таки, интересно было бы, как это реализовать можно
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.