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

maxos

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

    19
  • З нами

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

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

  1. Я всегда заставляю клиентов покупать платные дополнения (в wordpress), но сначала стараюсь проверить, что оно будет работать.

    С opencart я пока новичок, и как то боязно покупать, то что возможно не подойдет по каким либо причинам.

     

    И еще вопрос попутно, если удалить модуль через админку (Opencart2.x) он свои файлы удалит ? Насколько я вижу нет, а это как бы лишние файлы уже получаются. Или я что то не понимаю. 

  2. в js темы был такой код

    Spoiler
    
    (function ($) {
        var o = $('input[name*="quantity"]');
        $(document).ready(function () {
            $('.counter-minus').click(function (e) {
                e.preventDefault();
                input = $(this).parent().find('input[name*="quantity"]');
                if (input.val() > 1) {
                    value = parseInt(input.val()) - 1;
                    input.val(value);
                }
            })
            $('.counter-plus').click(function (e) {
                e.preventDefault();
                input = $(this).parent().find('input[name*="quantity"]');
                value = parseInt(input.val()) + 1;
                input.val(value);
            });
        });
    })(jQuery);

    и он увеличивал уменьшал значения,

    я его и копировал и менял

     в итоге у меня не работает изменение значения

     

     

    и он увеличивал уменьшал значения,

    я его и копировал и менял

     в итоге у меня не работает изменение значения

    Spoiler
    
    			function plussubmit() {
    				var input, value;
    					input = $(this).parent().find('input[name*="quantity"]');
    					value = parseInt(input.val()) + 1;
    					input.val(value);
    
    				setTimeout(function () {
    					$.ajax({
    						type: 'post',
    						url: 'index.php?route=checkout/cart/edit',
    						data: $('#mx-cart').serialize(),
    						success: function () {
    							$('#content').load('/cart #content');
    						}
    					});
    				}, 100);
    			};

     

     

  3. почти домучал. 

    В общем сделал пару функций. Когда они были через document.ready в js файле , то они слетали после первого срабатывания

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

    Точнее перегружается каждый раз. а вот изменение количества не срабатывает.

     

    Spoiler
    
    <button onclick="minussubmit()" type="button" class="counter counter-minus material-design-horizontal39"></button>
    <input type="text" name="quantity[<?php echo $product['cart_id']; ?>]" value="<?php echo $product['quantity']; ?>" size="1" class="form-control cart-q" id="cart-q"/>
    <button onclick="plussubmit()" type="button"  class="counter counter-plus material-design-add186"></button>
    	<script>
    		function minussubmit(){
    			var input = $(this).parent().find('input[name*="quantity"]');
    			if (input.val() > 1) {
    				var value = parseInt(input.val()) - 1;
    				input.val(value);
    			}
    			setTimeout(function () {
    				$.ajax({
    					type: 'post',
    					url: 'index.php?route=checkout/cart/edit',
    					data: $('#mx-cart').serialize(),
    					success: function () {
    						$('#content').load('/cart #content');
    					}
    				});
    			}, 100);
    		};
    		function plussubmit(){
    			var input = $(this).siblings('input[name*="quantity"]');
    			setTimeout(function () {
    			var value = parseInt(input.val()) + 1;
    
    			input.val(value);
    			}, 100);
    			setTimeout(function () {
    				$.ajax({
    					type: 'post',
    					url: 'index.php?route=checkout/cart/edit',
    					data: $('#mx-cart').serialize(),
    					success: function () {
    						$('#content').load('/cart #content');
    					}
    				});
    			}, 100);
    		};
    	</script>

     

     

  4. заменил common.js на дефолтны, заработало. Но только стоимость в header забивает.

    Я так понимаю в теме сильно переделан common.js

    у меня получилось сделать частичное обновление стоимости на один товар, но есть проблема когда два и общая стоимость. И количество которое $this->request->post['quantity']; как то отловить надо для след изменения кол-ва

     

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

    Может попоробовать весь div с корзиной заменить через AJAX. Я правда в этом не силен..

  5. Спасибо, вроде получилось, но частично.

    Ошибок нет, но и стоимость не обновляется

    куда дальше копать...

     

    Spoiler
    
    	public function edit() {
    		$this->load->language('checkout/cart');
    
    		$json = array();
    //test
    
    //	tets
    		// Update
    		$mxcartupd = $this->request->post['quantity'];
    		if (!empty ($this->request->post['quantity'])) {
    			if (is_array($this->request->post['quantity'])) {
    				foreach ($this->request->post['quantity'] as $key => $value) {
    					$this->cart->update($key, $value);
    
    					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));
    			} else {
    				$this->cart->update($this->request->post['key'], $mxcartupd);
    
    
    				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']);
    $mxtet=$this->session->data['currency'];
    				$json['total'] = sprintf($this->currency->format($this->cart->getTotal(), $this->session->data['currency']));
    				$this->response->addHeader('Content-Type: application/json');
    				$this->response->setOutput(json_encode($json));
    				//$this->response->redirect($this->url->link('checkout/cart'));
    			}
    		}
    
    	}

     

     

  6. On 11.07.2017 at 4:31 PM, paulittop said:

    Invalid argument supplied for foreach() in <b>/Users/MacBook/Sites/TEXNOSALES/catalog/controller/checkout/cart.php</b> on line <b>414</b>

    Так а что с этим то делать

     

    Cейчас  пытаюсь, сделать то же самое. Обновление стоимости по нажатиям + и -

    Но что то дальше процитированной ошибки не получается продвинуться

     

    Кнопка + выглядит вот так

    <a onclick="cart.update('<?php echo $product['cart_id']; ?>', '<?php echo $product['quantity']; ?>');" class="counter counter-plus material-design-add186" href='#' data-toggle="tooltip" title="" data-original-title="Больше"></a>

    и при нажатии ошибка Invalid argument supplied for foreach()

    вот контроллер - функция edit

    public function edit() {
    		$this->load->language('checkout/cart');
    
    		$json = array();
    
    		// Update
    		if (!empty($this->request->post['quantity'])) {
    			foreach ($this->request->post['quantity'] as $key => $value) {
    				$this->cart->update($key, $value);
    			}
    
    			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));
    	}

    Спасибо

  7. А можно еще вопрос. Я так понял js и css этим не поправить.

     

    То есть я так понимаю надо подключить в head свой файл

    типа

    <operation>
            <search><![CDATA[</head>]]></search>
            <add position="before"><![CDATA[<link свой css>]]></add>
    </operation>

    Но не совсем понял, как сделать чтобы этот самый CSS заливался.

    Я навeрно путаюсь в VMOD и OCMOD

     

    Я так понимаю в архиве "myextenstion.ocmod.zip" нужно сделать папку upload и туда вложить файл стилей. Но наверно как то надо путь прописать (как то upload/mymodule/style.css) там куда его заливать. Куда вообще положено заливать файлы стилей модулей (расширений)?

     

    вроде сюда
    catalog/view/theme/default/stylesheet/mystyle.css

    а если тема поменяется. Или дефолтная всегда есть. И путь задать без {THEME} 

  8. Доброго дня.

     

    Я пытаюсь написать, модификатор (расширение) - дабы не менять файлы темы и админ части.

    Вроде получается. но есть пара вопросов

    Если искомый текст с пробелами, то он не ищется. Я так понял можно использовать trim - но он ни в true ни в false ни вобще без него все равно не находит нужный кусок кода.

     

    Пример

    <operation>
            <search><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>
    			<div class="col-xs-6 col-sm-6 text-center">
    				<a href="<?php echo $manufacturer['href']; ?>">
    					<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>">
    				</a>
    			</div>
    			<?php } ?>]]></search>
            <add position="replace"><![CDATA[<?php foreach ($categories['manufacturer'] as $manufacturer) {   ?>
    			<div class="col-xs-6 col-sm-6 text-center">
    				<a href="<?php echo $manufacturer['href']; ?>">
    					<img src="/image/<?= $manufacturer['image']; ?>" alt="<?= $manufacturer['name']; ?>" title="<?= $manufacturer['image']; ?>"><br/><span><?= $manufacturer['name']; ?></span>
    				</a>
    			</div>
    			<?php } ?>]]></add>
          </operation>

     

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

Important Information

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