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

Linkoln

Користувачі
  
  • Публікації

    185
  • З нами

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

Повідомлення, опубліковані користувачем Linkoln

  1. Всем доброго дня. Собрался писать модуль, который добавляет за каждую покупку бонусные баллы в зависимости от суммы заказа, то есть баллы за товар не учитываются, в админке задается несколько сумм и для каждой указываем количество бонусных баллов. Подсмотрел, как происходит добавление бонусных баллов за регистрацию в одном модуле, решил сделать аналогично, в catalog/controller/api/order.php добавил код, который считывает значения из конфига модуля и добавляет их и в 793 строчке, где добавляется история к заказу, добавил такой код
     

    $discount_values = $this->config->get('module_reward_point_values');
    				   $discount_pcnt = 1;
    
                      if (is_array($discount_values)){
                      foreach ($discount_values as $discount_value) {
                       if ($total['total'] > $discount_value['total'] ) 
                       $discount_pcnt = $discount_value['discount'];
                       }
                       }
    
    				       if($this->config->get('module_reward_point_status') &&   $order_info['customer_id']) {
    					
    						// Give reward point to customer when order finished.
    						if(in_array($this->request->post['order_status_id'], $this->config->get('config_complete_status'))) {
    							
    								$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" .  $discount_pcnt . "', date_added = NOW()");
    														
    						}
    						
    						// Pull back reward point order cancelled by admin
    						if($this->config->get('config_fraud_status_id') == $this->request->post['order_status_id']) {
    							$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_reward WHERE customer_id = '" . (int)$order_info['customer_id'] . "' AND description = '" . $this->db->escape($this->language->get('text_firstorder')) . "' AND order_id='" . (int)$order_id . "'");
    							
    							if($query->num_rows >= 1) {
    								$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder_reverse')) . "', points = '-" . (float)$query->row['points'] . "', date_added = NOW()");
    							}							
    						}						
    					}

     

    но ничего не происходит, значения в конфиге есть, переменные выводятся, пробовал даже просто захардкодить сразу после if(order_info) что бы проверить
    $this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" .  $discount_pcnt . "', date_added = NOW()");
    то же самое, ничего не происходит, кто знает что тут может быть, прошу подсказать, куда смотреть хотя бы?

  2. Я решил сделать фильтр через категории, то есть добавляем к статье категорию, через стандартный функционал блога, и потом уже, во фронте, через ajax фильтруем по-этим категориям. Получается, что у одной статьи могло быть одна и больше категорий, вот я и не могу сообразить, как составить sql для того, что бы выбрать article_id у которой blog_category_id совпадает сразу с несколькими переданными значениями, например, как получить все статьи у которых blog_category_id = 73 & 70

  3. Короч попробовал вот так:

     public function getArticlesByFilter($data){
            $sql = "SELECT a.article_id " . " FROM " . DB_PREFIX . "article a";
            $sql .= " LEFT JOIN " . DB_PREFIX . "article_to_blog_category a2c ON (a.article_id = a2c.article_id)";
            $sql .= " LEFT JOIN " . DB_PREFIX . "article_description ad ON (a.article_id = ad.article_id) WHERE ad.language_id = '" . (int)$this->config->get('config_language_id')  ."' AND a.status = '1' ";
            $sql .= " AND a2c.blog_category_id IN (" . implode(', ', $data) . ")";       
            
             $article_data = array();
            $query = $this->db->query($sql);

            foreach ($query->rows as $result) {
                $article_data[$result['article_id']] = $this->getArticle($result['article_id']);
            }

            return $article_data;
           
        }

    пока тестирую

  4. Всем добрый день, возникла необходимость написать простенький ajax фильтр, для фильтрации категорий блога. То есть имеется блог, в нем идут две основные категории, в которых может находится произвольное количество субкатегорий. в  статьи могут входить и в одну и из субкатегорий, во фронте нужно сделать фильтрацию по этим субкатегориям, по каждой отдельно или по нескольким сразу.  получить список статей через model_blog_article->getArticles() я так понимаю не получится, потому что у статей могут быть несколько категорий, решил дописать собственную функцию в модели getArticlesByFilter() аргументом в которую буду передавать массив категорий (либо одна, либо 2) не могу сообразить, как в организовать для всего этого sql- запрос, что бы выдавал мне список нужный статей. Я предполагаю как-то так:
     

      public function getArticlesByFilter($filers){
            $data_article = array();
            $sql = "SELECT a.article_id " . " FROM " . DB_PREFIX . "article a";
            foreach ($filters as $filter) {  // здесь обходим каждый элемент массива аргументов
              sql.= 
                ....
                }
             ...// тут заполняем массив $data_article и его же возвращаем

    Но вот додумать не получается. Направте пожалуйста в нужную сторону

  5. Есть сайт на opencart 2.3 https://vitromob.md/

     Владелец просрочил оплату, после чего сайт пришлось восстанавливать из .gz архива, вроде бы все прошло отлично, база подключена, товары\категории работают, все работает, но revolution slider наотрез, я никак не могу сообразить в чем же дело, если кто-нибудь сталкивался или может навести на мысль, буду благодарен за любую помощь

  6. 49 minutes ago, markimax said:

    Тогда смотрите модификаторы
    Часто засовывают в /system
    Найдите в коде модификаторов код добавления этих скриптов

    Да в том-то и дело, что скрипт добавляется прямо в шаблоне, там простой код
     

    <div class="brand-slider">
      
      <div id="banner{{ module }}" class="swiper-container">
        <div class="swiper-wrapper">{% for banner in banners %}
          <div class="swiper-slide">{% if banner.link %}<a href="{{ banner.link }}"><img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" /></a>{% else %}<img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" />{% endif %}</div>
          {% endfor %}</div>
      </div>
      
    </div>
    <script >
    $('#banner{{ module }}').swiper({
    	slidesPerView: 5,
    	spaceBetween: 10,
    	autoplay: false,
    	loop: false,
        autoplayDisableOnInteraction: false,
    	// Responsive breakpoints
    	breakpoints: {
    		479: {
    		  slidesPerView: 2
    		},
    		767: {
    		  slidesPerView: 3
    		},
    		991: {
    		  slidesPerView: 4
    		  
    		},
    		1200: {
    		  slidesPerView: 5
    		  
    		}
    	}
    });
    </script> 

    Вопрос закрыт, нашел еще один модуль, который подключался на этой странице и добавлял этот скрипт, тему можно считать закрытой, всем спасибо за участие

  7. 9 minutes ago, markimax said:

    Тогда смотрите модификаторы
    Часто засовывают в /system
    Найдите в коде модификаторов код добавления этих скриптов

    Да в том-то и дело, что скрипт добавляется прямо в шаблоне, там простой код
     

    <div class="brand-slider">
      
      <div id="banner{{ module }}" class="swiper-container">
        <div class="swiper-wrapper">{% for banner in banners %}
          <div class="swiper-slide">{% if banner.link %}<a href="{{ banner.link }}"><img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" /></a>{% else %}<img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" />{% endif %}</div>
          {% endfor %}</div>
      </div>
      
    </div>
    <script >
    $('#banner{{ module }}').swiper({
    	slidesPerView: 5,
    	spaceBetween: 10,
    	autoplay: false,
    	loop: false,
        autoplayDisableOnInteraction: false,
    	// Responsive breakpoints
    	breakpoints: {
    		479: {
    		  slidesPerView: 2
    		},
    		767: {
    		  slidesPerView: 3
    		},
    		991: {
    		  slidesPerView: 4
    		  
    		},
    		1200: {
    		  slidesPerView: 5
    		  
    		}
    	}
    });
    </script> 

     

  8. Всем доброго дня. Столкнулся с такой любопытной проблемой, при отключении дефолтного  модуля banner (брендлайдер) и даже после его полного удаления, если просматривать код через debuger, то видно, что в коде осталось, аж четыре его скрипта

     $(".swiper-container-pimg-32").swiper({
            spaceBetween: 0,
            nextButton: '.pimg-button-next-32',
            prevButton: '.pimg-button-prev-32',
            speed: 300,
            slidesPerView: 3,
            slidesPerColumn: 1,
            autoplay: false,
            simulateTouch: false,
            loop: false,
    		breakpoints: {
    			479: {
    			  slidesPerView: 3
    			},
    			767: {
    			  slidesPerView: 4
    			},
    			991: {
    			  slidesPerView: 4
    			  
    			},
    			1199: {
    			  slidesPerView: 3
    			  
    			}
    		}
        });
    
        $(".swiper-container-pimg-32 .img-slide").on('click', function() {
        	var img = $(this).data('img');
        	$('.img-main-32').attr('src', img);
    
        	$(".swiper-container-pimg-32 .img-slide").removeClass('active');
        	$(this).addClass('active');
        });

      И таких 4 штуки, только с id разными
      Естественно, при отключенном модуле, консоль  ругается Uncaught TypeError: $(...).swiper is not a function Системный кэш и кэш модификаций, чистил всеми возможными способами, кэш браузера в том числе. Под конец удалил контроллер и вьюшку модуля, но и это не помогло, в коде главной страницы, до сих пор висит 4 скрипта, созданных этим модулем. Помогите кто чем может, гугл молчит, идеи закончились. Версия: Ocstore 3.0.2.0 шаблон- Autima

  9. 44 minutes ago, zCarot said:

     

    перед забыли

    $this->load->model('tool/image');

    Не забыл, просто здесь не написал. В коде есть. Я вообщем посмотрел, у меня в админке, не было назначена картинка этому производителю... но что интересно в базе запись с url была, да и vardump($manufacturer_info['image']) тоже показывал строку. Картинку в админке добавил, вроде бы работает, но мне все-равно не понятны эти "маневры". И еще, может кто подскажет, в этом контроллере, если ошибка была допустим в строчке 144, то на сайте отоборажало, что ошибка скажем в строчке 155. Я чего-то недопонимаю?

  10. Всем привет, уважаемые форумчане. Столкнулся с проблемой, пол дня бьюсь головой, и не могу понять в чем дело. Пытаюсь добавить в выводе производителей (отдельная страница) логотип производителя. В controller/manufacturer.php добавляю
    $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
     

    $main_image = $this->model_tool_image->resize($manufacturer_info['image'], 20,20);
                $data['main_img']=$main_image;


    и получаю... null

    Пробую      var_dump($manufacturer_info['image']), все норм, выдает string(24) "catalog/demo/hp_logo.jpg", как бы все нормально, переменная не пустая, но после ресайза почему-то, она превращается в null. Подскажите пожалуйста, если кто сталкивался, что я не так делаю?

  11. 6 minutes ago, vier said:

    это -

    для модуля работы по Стандартным фильтрам.

     

    а Ваш -

     

    по моему, Вам здесь уже давно об этом объяснили.

    Хорошо, если это метод выборки стандартных фильтров, то почему тогда во фронтенде выводятся характеристики. Поле "фильтр", у товаров не заполненно

  12. 22 minutes ago, vier said:

    нет. - дело не в этом вообще.

     

     

    1) есть модули фильтра, которые работают со Стандартными фильтрами Опенкарт,

    2) если такие, которые работают с Атрибутами,

    3) а есть такие, которые работают и с первым и вторым.

     

    здесь правильно Вам сказали, что скорее всего -

    это обработка Стандартных фильтров.

    значит Вам сюда - https://prnt.sc/r05re1

     

    но может Ваш фильтр работает именно с Атрибутами, и Вы не там ищите в коде, либо не заданы значения для другого Языка.

    тогда Вам в карточку Товара во вкладку Атрибуты/Характиристики. пример - https://prnt.sc/r05v1k

     

    Модуль с атрибутами работает. Я проверил другие модули, которые с атрибутами работают- то же самое в фильтре атрибуты дублируются. В админке характеристики на двух языках установленны. Проверял модель, метод getCategoryFilter() не тронут, такой же, как и в стандартном Ocstore

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

Important Information

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