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

vibe01

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

    16
  • З нами

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

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

  1. Здравствуйте.
    Совсем недавно наткнулся на очень интересную проблему, связанную с поиском товаров и пагинацией внутри них в IE11.
    Есть поле поиска, при вводе значений и тригере событий строка кодируется при помощи метода encodeURIcomponent в javascript файле, формирует урл и меняет обьект location.
    И все нормально, страница работает как надо, есть и пагинация по всем товарам, однако не все так радужно.
    Браузер типа Internet Explorer не дает возможности пагинации между товарами (причем во всех остальных браузерах все нормально). 

    Запросы типа:

    ?search=чайник&page=2

    банально не работают. Причем внутри самого кода url как бы кодируется, однако ссылки все равно формируются этого типа.
    И чтобы я не делал - IE все равно не хочет работать нормально.
    Мне необходимо, чтобы ссылки формировались не 

    ?search=термос&page=2

    А что-то вроде 

    ?search=термос&page=2

    UPDATE: Почему-то с включенной консолью разработчика пагинация работает :huh:
    Прикладываю код контроллера search.php с процессом формирования url и пагинацией.

     

    Спойлер
    
    $url = '';
    
    if (isset($this->request->get['search'])) {
    $url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
    }
    
    if (isset($this->request->get['tag'])) {
    $url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
    }
    
    if (isset($this->request->get['description'])) {
    $url .= '&description=' . $this->request->get['description'];
    }
    
    if (isset($this->request->get['category_id'])) {
    $url .= '&category_id=' . $this->request->get['category_id'];
    }
    
    if (isset($this->request->get['sub_category'])) {
    $url .= '&sub_category=' . $this->request->get['sub_category'];
    }
    
    if (isset($this->request->get['sort'])) {
    $url .= '&sort=' . $this->request->get['sort'];
    }
    
    if (isset($this->request->get['order'])) {
    $url .= '&order=' . $this->request->get['order'];
    }
    
    if (isset($this->request->get['limit'])) {
    $url .= '&limit=' . $this->request->get['limit'];
    }
    
    $pagination = new Pagination();
    $pagination->total = $product_total;
    $pagination->page = $page;
    $pagination->limit = $limit;
    $pagination->url = $this->url->link('product/search', $url . '&page={page}');
    
    $data['pagination'] = $pagination->render();
    
    $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit)    		   > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));
    
    if ($page == 1) {
    $this->document->addLink($this->url->link('product/search', '', true), 'canonical');
    } elseif ($page == 2) {
    $this->document->addLink($this->url->link('product/search', '', true), 'prev');
    } else {
    $this->document->addLink($this->url->link('product/search', $url . '&page='. ($page - 1), true), 'prev');
    }
    
    if ($limit && ceil($product_total / $limit) > $page) {
    $this->document->addLink($this->url->link('product/search', $url . '&page='. ($page + 1), true), 'next');
    }

     

     

  2. Здравствуйте.
    В каком контроллере можно настраивать рендер товаров на странице категорий? 
    Я пытался настраивать по адресу product/category и там есть массив с товарами, но оказалось, что даже если и удалить этот файл, то страница все равно работает -.-

  3. Здравствуйте. Есть категории и подкатегории, необходимо все товары из подкатегорий вывести в главную категорию. Проблема в том, что на сайте несколько тысяч товаров и вручную каждому устанавливать главную категорию ох как будет долго. 

  4. В 15.10.2017 в 15:21, We9niamin сказал:

    Здравствуйте. Есть ли возможность в тексте описания категории сделать кнопку с формой обратной связи? Или как вариант привязать к ней модуль? Уже голову сломал. Может кто знает готовое решение?

    Почему нет? Вставляете html содержимое и делайте что хотите с ним)

  5. Обьясняю всю суть, пишу модуль для импорта. Имеется xml файл с каталогом товаров и ссылками на картинки. Мне необходимо выкачать и сохранить картинки, но там каталог на огромное количество товаров и картинки весят по 200кб. И за 3 минуты метод просто не успевает.

  6. 1 минуту назад, thentru сказал:

    У вас как сейчас запускается метод?
    3 минуты это скорее всего таймаут, по которому выполнение скрипта прекращается.
    cli-режим php - это так называемый консольный режим работы php

    Ajax запросом из вьюхи в админке.

  7. Имеется метод в контроллере, который качает картинки и сохраняет их в папке image. Проблема в том, что этот метод работает только 3 минуты. Где можно посмотреть и убрать ограничение? Качаю картинки в цикле.

  8. Здравствуйте.
    При отправке запроса в метод контроллера в ответ приходит ошибка unexpected token in json at position 0. Однако если обновить страницу, то товары в корзине всё таки обновляются. Код метода в контроллере( я изменил стандартный под свои нужды)

    public function edit() {
    		$this->load->language('checkout/cart');
    
    		$json = array();
    
    		// Update
    		if (!empty($this->request->post['quantity'])) {
    
    		$this->cart->update($this->request->post['key'], $this->request->post['quantity']);
    
    			$this->session->data['success'] = $this->language->get('text_remove');
    
    			unset($this->session->data['shipping_method']);
    			unset($this->session->data['shipping_methods']);
    			unset($this->session->data['payment_method']);
    			unset($this->session->data['payment_methods']);
    			unset($this->session->data['reward']);
    
    			$this->response->redirect($this->url->link('checkout/cart'));
    		}
    
    		$this->response->addHeader('Content-Type: application/json');
    		$this->response->setOutput(json_encode($json));
    	}

    И код отправки 

    $.ajax({
    			url: 'index.php?route=checkout/cart/edit',
    			type: 'post',
    			data: 'key=' + id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
    			dataType: 'json',
    			beforeSend: function() {
    			},
    			complete: function(json) {
    				console.log(json)
    			},
    			success: function(json) {
    				console.log(json)
    
    				if (json['redirect']) {
    					location = json['redirect'];
    				}
    			},
    			error: function(xhr, ajaxOptions, thrownError) {
    				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    			}
    		});

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

  9. На странице категорий мне нужно вывести абсолютно все категории и подкатегории. Все категории выводятся. А вот подкатегории только той категории, на какой мы сейчас находимся. Сами массивы "детей" остальных категорий пустые. Это ошибка самого движка?

     

    <ul class="catalogMenu">
      <?php foreach ($categories as $category) { ?>
    
    
      <?php if ($category['category_id'] == $category_id) { ?>
      <li class="active">
         <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
         <?php if ($category['children']) { ?>
         <ul>
            <?php foreach ($category['children'] as $child) { ?>
              <?php if ($child['category_id'] == $child_id) { ?>
                <li class="active"><a href="<?php echo $child['href']; ?>"> <?php echo $child['name']; ?></a></li>
              <?php } else { ?>
                <li>
                  <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
                </li>
                <?php } ?>
            <?php } ?>
         </ul>
        <?php } ?>
      </li>
    
    
      <?php } else { ?>
      <li class="showMenu">
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php if ($category['children']) { ?>
        <ul>
          <?php foreach ($category['children'] as $child) { ?>
                <li>
                  <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
                </li>
            <?php } ?>
        </ul>
        <?php } ?>
      </li>
      <?php } ?>
      <?php } ?>
    </ul>

     

  10. При добавлении товара в корзину некоторые товары не добавляются. Вот код запроса.

    $('.addBasket').click(function(){
    		var prodThis = $(this);
    		var id = prodThis.attr("data-id");
    		var minimum = prodThis.attr("data-minimum");
    		$.ajax({
    			url: 'index.php?route=checkout/cart/add',
    			type: 'post',
    			data: 'product_id=' + id + '&quantity=' + (typeof(minimum) != 'undefined' ? minimum : 1),
    			dataType: 'json',
    			beforeSend: function() {
    				prodThis.text('Загрузка');
    			},
    			complete: function() {
    				
    			},
    			success: function(json) {
    				console.log(json['total']);
    				prodThis.text('Товар добавлен');	
    			},
    			error: function(xhr, ajaxOptions, thrownError) {
    				console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    			}
    		});
    
    
    		prodThis.addClass('addTovarOK');
    		
    	});

    А вот так идет привязка идентификаторов 

    <span class="addBasket" data-id="<?php echo $product['product_id']; ?>" data-minimum="<?php echo $product['minimum']; ?>">
       <?php echo $button_cart; ?>
    </span>

    Сколько не копался в коде не могу понять почему некоторые товары отправляются в корзину. а некоторые нет.

  11. Добрый день.

    Версия 2.3.0.2.3.

    В шапке сайта имеется корзина image.png.64c86d04004fd34d753a3b5a8d83761f.png
    Не выводится количество товаров. Точнее при обновлении страницы можно увидеть число товаров, но как только прогрузится до конца - число снова становится равным нулю.

    Код в контроллере

    $data['count_prod'] = $this->cart->countProducts();

    Код во вьюхе

    <a href="<?php echo $shopping_cart; ?>" class="basket">
    				<span><?php echo $count_prod; ?></span>
    </a>

     

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

Important Information

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