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

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. Установлен opencart russia 3.0.3.8. php 7.3

    Есть структура каталога:

    Каталог > Категория > Подкатегория

    В Подкатегории лежит Товар1

    Мне необходимо сделать, чтобы Товар1 выводился не только в Подкатегории, но и в Категории

    Я нашел простой модификатор, который позволяет сделать это:

    Спойлер

    <file path="catalog/controller/product/category.php">
            <operation>
                <search><![CDATA[
                'filter_category_id' => $category_id,
                ]]></search>
                <add position="after"><![CDATA[
                'filter_sub_category' => true,
                ]]></add>
            </operation>
        </file>

    Теперь товар выводится и в основной категории, но 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

    Заранее спасибо за ответ!

  5. 32 минуты назад, nikifalex сказал:

    нет, нельзя. Но можно сменить процесс разработки.

    Т.е. ну уберите модификаторы, либо меняйте в modification а потом переносите ваши доработки.

     

    хорошо, еще один вопрос, чтобы применились изменения css нужно прожать ctrl+f5 в браузере и они появляются. как быть обычным пользователям? они же не делают жесткую очистку кеша и изменения у них не появляются.

  6. Я делаю изменения в файле header.twig, но после этого мне нужно в ручную обновить модификации в админке, чтобы изменения применились. Если я изменяю файлы css, то мне не нужно этого делать. Можно ли как-то сделать автоматическое обновление модификаций, чтобы постоянно не отвлекаться?

    opencart 3x

  7. Есть размерная сетка на opencart 2.3, ее нужно повторить но уже на opencart 3:

    на двойке она сделана на чистом php в tpl файле (product.tpl), но opencart 3 поддерживает только twig формат, поэтому скопировать просто php код на тройку не получится (product.twig)

     

    Спойлер

    image.thumb.png.0e769265e45ef8b870150baa2ddcec98.png

     

    Вот код на 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 (пример)

     

    Спойлер

    image.thumb.png.dcae53c302bd05601e4ab439859556da.png

     

    Пытался воспользоваться онлайн сервисом 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>

     

    Спойлер

    image.thumb.png.a6a80165db461a1270ff58d7cea80209.png

     

    Может есть модуль для такой сетки? Или лучше уже допилить код? Подскажите, пожалуйста, в какую сторону нужно копать.

     

  8. Копирую в контролере по принципу как и у 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'])
                    );
                }

    Летят нотисы:

    image.thumb.png.7b54a96b459a93da443369ef95bf827a.png

    Как вывести скидки в opencart 3 на страницу категории? Может кто-то сталкивался с этим?

  9. 12 минут назад, fanatic сказал:

    так вот же

    
     $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

     

    спасибо, добавил в контроллер    

    $data['products_all'] = $this->model_catalog_product->getTotalProducts($filter_data);

    и вывел в шаблон, все работает

  10. В 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>';

     

    Все работает, всем спасибо)
     

  11. в 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']),

     

    теперь выводит

     image.png.8464ff440b3df38fa8c0bd3a42558b14.png

  12. 22 минуты назад, nashivan сказал:

    после ввода ошибка и сохранения ошибка 500 :(

    добавил в phpmyadmin столбец price2 с такими же параметрами как и у price - ошибка пропала.

    осталось две проблемы:

    image.thumb.png.ee373a57893ecc901a9bdfccd827c6e5.png

    и не выводит:

    image.png.80ea513aac15db0856988cc49bd230c6.png

  13. 17 минут назад, Tom сказал:

    Так вы расскажите , что вы уже сделали. Будет проще дать советы.

    Или вам нужно что бы кто то расписал вам как выполнить такую не стандартную фишку в магазине?

    Вот, что я сделал

     

     

    В 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

     

     

     

     

     

  14. 8 минут назад, Tom сказал:

    Странное довольно желание. Толку от этих зачеркнутых цен.

    Тем более что акция у основной цены , как на скрине и так есть в опенкарт.

    желание странное, согласен, но все таки, интересно было бы, как это реализовать можно

×
×
  • Створити...

Important Information

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