Jump to content

Sheedy

Пользователи
  • Content Count

    79
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Sheedy

  • Rank
    Пользователь
  • Birthday 11/18/1998

Информация

  • Пол
    Мужчина
  • Город:
    Северодонцк
  • Интересы
    Учусь, работаю

Контакты

  • Skype
    kapatcy

Recent Profile Visitors

426 profile views
  1. Здравствуйте, подскажите, такая проблема при переходе на другие страницы в менеджере изображений, стили не подгружаются.
  2. Здравствуйте! Подскажите, как сделать мега меню в опенкарт. Мне нужно добавить тайтл для подкатегорий. Я сейчас сделал таким способом: Главная категория -> По применению -> Батуты для детей Получается "По применению" является тоже категорией. Как сделать его тайтлом, не знаю... Если уже есть ранее созданная тема, прощу прощение, не смог найти. Буду рад за помощь!
  3. ну это я и сам обнаружил, я не пойму где в js за это отвечает, что нужно в скрипте править?
  4. Здравствуйте! У меня такая проблема, при добавление товара в корзину, корзина не открывается, пока не обновишь страницу, тоже самое когда удаляешь товар с корзины. Ocstore 2.3 http://www.mbgrill.com.ua/ Буду очень благодарен, если подскажите, в чем проблема <div id="cart"> <button > <p class="count"><span id="cart-total"><?php echo $text_items; ?></span></p> <i class="icon-cart"></i> <div class="box-cart"> <?php if($products){?> <?php foreach ($products as $product){?> <div class="product-line"> <?php if($product['thumb']) {?> <div class="thumb"><img src="<?php echo $product['thumb']?>"alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" /> </div> <?php }?> <div class="product-name"> <a href="<?php echo $product['href']; ?>" style=" font-size: 18px; text-align: center; font-weight: 600;"><?php echo $product['name']; ?></a> <p><b>x</b> <?php echo $product['quantity']; ?> - <span style="font-size: 17px; font-weight: bolder; color: #fd1a15; text-decoration: underline;"><?php echo $product['total']; ?></span></p> </div> <a type="button" onclick="cart.remove('<?php echo $product['cart_id']; ?>');" title="<?php echo $button_remove; ?>" class="delete_products"><i style="font-size: 20px; color: #343434;" class="fa fa-times"></i></a> </div> <?php }?> <div id="price-cart "> <?php $total = array_pop($totals); ?> <span class="left" style="color: #333; width: 100%; font-size: 16px; font-weight: 600; font-family: 'Montserrat', sans-serif; text-transform: uppercase; padding: 6px 10px; "><?php echo $total['title']; ?>:</span> <span class="right" style="font-weight: 800; color: #090909;"><?php echo $total['text']; ?></span> </div> <br> <div class="box-link-cart"> <a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a> <!--<a href="<?php echo $cart; ?>"><?php echo $text_cart; ?></a>--> </div> <?php } else{?> <p class="text-center"><?php echo $text_empty; ?></p> <?php }?> </div><!--box-cart--></button> </div> function getURLVar(key) { var value = []; var query = String(document.location).split('?'); if (query[1]) { var part = query[1].split('&'); for (i = 0; i < part.length; i++) { var data = part[i].split('='); if (data[0] && data[1]) { value[data[0]] = data[1]; } } if (value[key]) { return value[key]; } else { return ''; } } else { // Изменения для seo_url от Русской сборки OpenCart 2x var query = String(document.location.pathname).split('/'); if (query[query.length - 1] == 'cart') value['route'] = 'checkout/cart'; if (query[query.length - 1] == 'checkout') value['route'] = 'checkout/checkout'; if (value[key]) { return value[key]; } else { return ''; } } } $(document).ready(function() { // Highlight any found errors $('.text-danger').each(function() { var element = $(this).parent().parent(); if (element.hasClass('form-group')) { element.addClass('has-error'); } }); // Currency $('#form-currency .currency-select').on('click', function(e) { e.preventDefault(); $('#form-currency input[name=\'code\']').val($(this).attr('name')); $('#form-currency').submit(); }); // Language $('#form-language .language-select').on('click', function(e) { e.preventDefault(); $('#form-language input[name=\'code\']').val($(this).attr('name')); $('#form-language').submit(); }); /* Search */ $('#search input[name=\'search\']').parent().find('button').on('click', function() { var url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('header #search input[name=\'search\']').val(); if (value) { url += '&search=' + encodeURIComponent(value); } location = url; }); $('#search input[name=\'search\']').on('keydown', function(e) { if (e.keyCode == 13) { $('header #search input[name=\'search\']').parent().find('button').trigger('click'); } }); // Menu $('#menu .dropdown-menu').each(function() { var menu = $('#menu').offset(); var dropdown = $(this).parent().offset(); var i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('#menu').outerWidth()); if (i > 0) { $(this).css('margin-left', '-' + (i + 10) + 'px'); } }); // Product List $('#list-view').click(function() { $('#content .product-grid > .clearfix').remove(); $('#content .row > .product-grid').attr('class', 'product-layout product-list col-xs-12'); $('#grid-view').removeClass('active'); $('#list-view').addClass('active'); localStorage.setItem('display', 'list'); }); // Product Grid $('#grid-view').click(function() { // What a shame bootstrap does not take into account dynamically loaded columns var cols = $('#column-right, #column-left').length; if (cols == 2) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12'); } else if (cols == 1) { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12'); } else { $('#content .product-list').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12'); } $('#list-view').removeClass('active'); $('#grid-view').addClass('active'); localStorage.setItem('display', 'grid'); }); if (localStorage.getItem('display') == 'list') { $('#list-view').trigger('click'); $('#list-view').addClass('active'); } else { $('#grid-view').trigger('click'); $('#grid-view').addClass('active'); } // Checkout $(document).on('keydown', '#collapse-checkout-option input[name=\'email\'], #collapse-checkout-option input[name=\'password\']', function(e) { if (e.keyCode == 13) { $('#collapse-checkout-option #button-login').trigger('click'); } }); // tooltips on hover $('[data-toggle=\'tooltip\']').tooltip({container: 'body',trigger: 'hover'}); // Makes tooltips work on ajax generated content $(document).ajaxStop(function() { $('[data-toggle=\'tooltip\']').tooltip({container: 'body'}); }); }); // Cart add remove functions var cart = { 'add': function(product_id, quantity) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), dataType: 'json', beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { $('.alert, .text-danger').remove(); if (json['redirect']) { location = json['redirect']; } if (json['success']) { $('header').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#cart > button').html('<p class="count"><span id="cart-total"> ' + json['total'] + '</span></p><i class="icon-cart"></i>'); }, 100); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > div').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'update': function(key, quantity) { $.ajax({ url: 'index.php?route=checkout/cart/edit', type: 'post', data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), dataType: 'json', beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#cart > button').html('<p class="count"><span id="cart-total"> ' + json['total'] + '</span></p><i class="icon-cart"></i>'); }, 100); if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { location = 'index.php?route=checkout/cart'; } else { $('#cart > div').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'remove': function(key) { $.ajax({ url: 'index.php?route=checkout/cart/remove', type: 'post', data: 'key=' + key, dataType: 'json', beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#cart > button').html('<p class="count"><span id="cart-total"> ' + json['total'] + '</span></p><i class="icon-cart"></i>'); }, 100); var now_location = String(document.location.pathname); if ((now_location == '/cart/') || (now_location == '/checkout/') || (getURLVar('route') == 'checkout/cart') || (getURLVar('route') == 'checkout/checkout')) { location = 'index.php?route=checkout/cart'; } else { $('#cart > div').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } } var voucher = { 'add': function() { }, 'remove': function(key) { $.ajax({ url: 'index.php?route=checkout/cart/remove', type: 'post', data: 'key=' + key, dataType: 'json', beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { // Need to set timeout otherwise it wont update the total setTimeout(function () { $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); }, 100); if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') { location = 'index.php?route=checkout/cart'; } else { $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } } var wishlist = { 'add': function(product_id) { $.ajax({ url: 'index.php?route=account/wishlist/add', type: 'post', data: 'product_id=' + product_id, dataType: 'json', success: function(json) { $('.alert').remove(); if (json['redirect']) { location = json['redirect']; } if (json['success']) { $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); } $('#wishlist-total span').html(json['total']); $('#wishlist-total').attr('title', json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'remove': function() { } } var compare = { 'add': function(product_id) { $.ajax({ url: 'index.php?route=product/compare/add', type: 'post', data: 'product_id=' + product_id, dataType: 'json', success: function(json) { $('.alert').remove(); if (json['success']) { $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); $('#compare-total').html(json['total']); $('html, body').animate({ scrollTop: 0 }, 'slow'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'remove': function() { } } /* Agree to Terms */ $(document).delegate('.agree', 'click', function(e) { e.preventDefault(); $('#modal-agree').remove(); var element = this; $.ajax({ url: $(element).attr('href'), type: 'get', dataType: 'html', success: function(data) { html = '<div id="modal-agree" class="modal">'; html += ' <div class="modal-dialog">'; html += ' <div class="modal-content">'; html += ' <div class="modal-header">'; html += ' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'; html += ' <h4 class="modal-title">' + $(element).text() + '</h4>'; html += ' </div>'; html += ' <div class="modal-body">' + data + '</div>'; html += ' </div'; html += ' </div>'; html += '</div>'; $('body').append(html); $('#modal-agree').modal('show'); } }); }); // Autocomplete */ (function($) { $.fn.autocomplete = function(option) { return this.each(function() { this.timer = null; this.items = new Array(); $.extend(this, option); $(this).attr('autocomplete', 'off'); // Focus $(this).on('focus', function() { this.request(); }); // Blur $(this).on('blur', function() { setTimeout(function(object) { object.hide(); }, 200, this); }); // Keydown $(this).on('keydown', function(event) { switch(event.keyCode) { case 27: // escape this.hide(); break; default: this.request(); break; } }); // Click this.click = function(event) { event.preventDefault(); value = $(event.target).parent().attr('data-value'); if (value && this.items[value]) { this.select(this.items[value]); } } // Show this.show = function() { var pos = $(this).position(); $(this).siblings('ul.dropdown-menu').css({ top: pos.top + $(this).outerHeight(), left: pos.left }); $(this).siblings('ul.dropdown-menu').show(); } // Hide this.hide = function() { $(this).siblings('ul.dropdown-menu').hide(); } // Request this.request = function() { clearTimeout(this.timer); this.timer = setTimeout(function(object) { object.source($(object).val(), $.proxy(object.response, object)); }, 200, this); } // Response this.response = function(json) { html = ''; if (json.length) { for (i = 0; i < json.length; i++) { this.items[json[i]['value']] = json[i]; } for (i = 0; i < json.length; i++) { if (!json[i]['category']) { html += '<li data-value="' + json[i]['value'] + '"><a href="#">' + json[i]['label'] + '</a></li>'; } } // Get all the ones with a categories var category = new Array(); for (i = 0; i < json.length; i++) { if (json[i]['category']) { if (!category[json[i]['category']]) { category[json[i]['category']] = new Array(); category[json[i]['category']]['name'] = json[i]['category']; category[json[i]['category']]['item'] = new Array(); } category[json[i]['category']]['item'].push(json[i]); } } for (i in category) { html += '<li class="dropdown-header">' + category[i]['name'] + '</li>'; for (j = 0; j < category[i]['item'].length; j++) { html += '<li data-value="' + category[i]['item'][j]['value'] + '"><a href="#">&nbsp;&nbsp;&nbsp;' + category[i]['item'][j]['label'] + '</a></li>'; } } } if (html) { this.show(); } else { this.hide(); } $(this).siblings('.box-cart').html(html); } $(this).after('<div class="box-cart"></div'); $(this).siblings('.box-cart').delegate('a', 'click', $.proxy(this.click, this)); }); } })(window.jQuery);
  5. Настроил почту и всё заработало, спасибо за помощь!
  6. хм, а почта реально не работает, хорошо, отпишусь А почта разве связана с комментариями ?
  7. https://snabzhenec.zp.ua/zapchasti_k_traktoram/zapchasti_yumz/kpp_i_zadnij_most_umz/differencial_40_2403010.html
  8. <?php class ControllerProductProduct extends Controller { private $error = array(); public function index() { $this->load->language('product/product'); $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); $this->load->model('catalog/category'); if (isset($this->request->get['path'])) { $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = $path_id; } else { $path .= '_' . $path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path) ); } } // Set the last category breadcrumb $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $url = ''; 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['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url) ); } } $this->load->model('catalog/manufacturer'); if (isset($this->request->get['manufacturer_id'])) { $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_brand'), 'href' => $this->url->link('product/manufacturer') ); $url = ''; 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['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($this->request->get['manufacturer_id']); if ($manufacturer_info) { $data['breadcrumbs'][] = array( 'text' => $manufacturer_info['name'], 'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url) ); } } if (isset($this->request->get['search']) || isset($this->request->get['tag'])) { $url = ''; if (isset($this->request->get['search'])) { $url .= '&search=' . $this->request->get['search']; } if (isset($this->request->get['tag'])) { $url .= '&tag=' . $this->request->get['tag']; } 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['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_search'), 'href' => $this->url->link('product/search', $url) ); } if (isset($this->request->get['product_id'])) { $product_id = (int)$this->request->get['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['search'])) { $url .= '&search=' . $this->request->get['search']; } if (isset($this->request->get['tag'])) { $url .= '&tag=' . $this->request->get['tag']; } 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['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $product_info['name'], 'href' => $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']) ); if ($product_info['meta_title']) { $this->document->setTitle($product_info['meta_title']); } else { $this->document->setTitle($product_info['name']); } $this->document->setDescription($product_info['meta_description']); $this->document->setKeywords($product_info['meta_keyword']); $this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical'); $this->document->addScript('catalog/view/javascript/jquery/magnific/jquery.magnific-popup.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/magnific/magnific-popup.css'); $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/moment.js'); $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/locale/'.$this->session->data['language'].'.js'); $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js'); $this->document->addStyle('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css'); if ($product_info['meta_h1']) { $data['heading_title'] = $product_info['meta_h1']; } else { $data['heading_title'] = $product_info['name']; } $data['text_select'] = $this->language->get('text_select'); $data['text_manufacturer'] = $this->language->get('text_manufacturer'); $data['text_model'] = $this->language->get('text_model'); $data['text_reward'] = $this->language->get('text_reward'); $data['text_points'] = $this->language->get('text_points'); $data['text_stock'] = $this->language->get('text_stock'); $data['text_discount'] = $this->language->get('text_discount'); $data['text_tax'] = $this->language->get('text_tax'); $data['text_option'] = $this->language->get('text_option'); $data['text_minimum'] = sprintf($this->language->get('text_minimum'), $product_info['minimum']); $data['text_write'] = $this->language->get('text_write'); $data['text_login'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL')); $data['text_note'] = $this->language->get('text_note'); $data['text_tags'] = $this->language->get('text_tags'); $data['text_related'] = $this->language->get('text_related'); $data['text_payment_recurring'] = $this->language->get('text_payment_recurring'); $data['text_loading'] = $this->language->get('text_loading'); $data['entry_qty'] = $this->language->get('entry_qty'); $data['entry_name'] = $this->language->get('entry_name'); $data['entry_review'] = $this->language->get('entry_review'); $data['entry_rating'] = $this->language->get('entry_rating'); $data['entry_good'] = $this->language->get('entry_good'); $data['entry_bad'] = $this->language->get('entry_bad'); $data['button_cart'] = $this->language->get('button_cart'); $data['button_wishlist'] = $this->language->get('button_wishlist'); $data['button_compare'] = $this->language->get('button_compare'); $data['button_upload'] = $this->language->get('button_upload'); $data['button_continue'] = $this->language->get('button_continue'); $data['compare'] = $this->url->link('product/compare'); $this->load->model('catalog/review'); $data['tab_description'] = $this->language->get('tab_description'); $data['tab_attribute'] = $this->language->get('tab_attribute'); $data['tab_review'] = sprintf($this->language->get('tab_review'), $product_info['reviews']); $data['product_id'] = (int)$this->request->get['product_id']; $data['manufacturer'] = $product_info['manufacturer']; $data['manufacturers'] = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $product_info['manufacturer_id']); $data['model'] = $product_info['model']; $data['reward'] = $product_info['reward']; $data['points'] = $product_info['points']; $data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8'); if ($product_info['quantity'] <= 0) { $data['stock'] = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $data['stock'] = $product_info['quantity']; } else { $data['stock'] = $this->language->get('text_instock'); } $this->load->model('tool/image'); if ($product_info['image']) { $data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } else { $data['popup'] = $this->model_tool_image->resize('no_image.png', $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));; } if ($product_info['image']) { $data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); $this->document->setOgImage($data['thumb']); } else { $data['thumb'] = $this->model_tool_image->resize('no_image.png', $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); } $data['images'] = array(); $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']); foreach ($results as $result) { $data['images'][] = array( 'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')) ); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $data['price'] = false; } if ((float)$product_info['special']) { $data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $data['special'] = false; } if ($this->config->get('config_tax')) { $data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); } else { $data['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'))) ); } $data['options'] = array(); foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false)); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } if ($product_info['minimum']) { $data['minimum'] = $product_info['minimum']; } else { $data['minimum'] = 1; } $data['review_status'] = $this->config->get('config_review_status'); if ($this->config->get('config_review_guest') || $this->customer->isLogged()) { $data['review_guest'] = true; } else { $data['review_guest'] = false; } if ($this->customer->isLogged()) { $data['customer_name'] = $this->customer->getFirstName() . '&nbsp;' . $this->customer->getLastName(); } else { $data['customer_name'] = ''; } $data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']); $data['rating'] = (int)$product_info['rating']; // Captcha if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('review', (array)$this->config->get('config_captcha_page'))) { $data['captcha'] = $this->load->controller('captcha/' . $this->config->get('config_captcha')); } else { $data['captcha'] = ''; } $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); $data['products'] = array(); $results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $rating, 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) ); } $data['tags'] = array(); if ($product_info['tag']) { $tags = explode(',', $product_info['tag']); foreach ($tags as $tag) { $data['tags'][] = array( 'tag' => trim($tag), 'href' => $this->url->link('product/search', 'tag=' . trim($tag)) ); } } $data['recurrings'] = $this->model_catalog_product->getProfiles($this->request->get['product_id']); $this->model_catalog_product->updateViewed($this->request->get['product_id']); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/product.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/product/product.tpl', $data)); } } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['manufacturer_id'])) { $url .= '&manufacturer_id=' . $this->request->get['manufacturer_id']; } if (isset($this->request->get['search'])) { $url .= '&search=' . $this->request->get['search']; } if (isset($this->request->get['tag'])) { $url .= '&tag=' . $this->request->get['tag']; } 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['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/product', $url . '&product_id=' . $product_id) ); $this->document->setTitle($this->language->get('text_error')); $data['heading_title'] = $this->language->get('text_error'); $data['text_error'] = $this->language->get('text_error'); $data['button_continue'] = $this->language->get('button_continue'); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/error/not_found.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/error/not_found.tpl', $data)); } } } public function review() { $this->load->language('product/product'); $this->load->model('catalog/review'); $data['text_no_reviews'] = $this->language->get('text_no_reviews'); if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $data['reviews'] = array(); $review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']); $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); foreach ($results as $result) { $data['reviews'][] = array( 'author' => $result['author'], 'text' => nl2br($result['text']), 'rating' => (int)$result['rating'], 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) ); } $pagination = new Pagination(); $pagination->total = $review_total; $pagination->page = $page; $pagination->limit = 5; $pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5)); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/review.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/review.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/product/review.tpl', $data)); } } public function write() { $this->load->language('product/product'); $json = array(); if ($this->request->server['REQUEST_METHOD'] == 'POST') { if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) { $json['error'] = $this->language->get('error_name'); } if ((utf8_strlen($this->request->post['text']) < 25) || (utf8_strlen($this->request->post['text']) > 1000)) { $json['error'] = $this->language->get('error_text'); } if (empty($this->request->post['rating']) || $this->request->post['rating'] < 0 || $this->request->post['rating'] > 5) { $json['error'] = $this->language->get('error_rating'); } // Captcha if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('review', (array)$this->config->get('config_captcha_page'))) { $captcha = $this->load->controller('captcha/' . $this->config->get('config_captcha') . '/validate'); if ($captcha) { $json['error'] = $captcha; } } if (!isset($json['error'])) { $this->load->model('catalog/review'); $this->model_catalog_review->addReview($this->request->get['product_id'], $this->request->post); $json['success'] = $this->language->get('text_success'); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function getRecurringDescription() { $this->language->load('product/product'); $this->load->model('catalog/product'); if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; } if (isset($this->request->post['recurring_id'])) { $recurring_id = $this->request->post['recurring_id']; } else { $recurring_id = 0; } if (isset($this->request->post['quantity'])) { $quantity = $this->request->post['quantity']; } else { $quantity = 1; } $product_info = $this->model_catalog_product->getProduct($product_id); $recurring_info = $this->model_catalog_product->getProfile($product_id, $recurring_id); $json = array(); if ($product_info && $recurring_info) { if (!$json) { $frequencies = array( 'day' => $this->language->get('text_day'), 'week' => $this->language->get('text_week'), 'semi_month' => $this->language->get('text_semi_month'), 'month' => $this->language->get('text_month'), 'year' => $this->language->get('text_year'), ); if ($recurring_info['trial_status'] == 1) { $price = $this->currency->format($this->tax->calculate($recurring_info['trial_price'] * $quantity, $product_info['tax_class_id'], $this->config->get('config_tax'))); $trial_text = sprintf($this->language->get('text_trial_description'), $price, $recurring_info['trial_cycle'], $frequencies[$recurring_info['trial_frequency']], $recurring_info['trial_duration']) . ' '; } else { $trial_text = ''; } $price = $this->currency->format($this->tax->calculate($recurring_info['price'] * $quantity, $product_info['tax_class_id'], $this->config->get('config_tax'))); if ($recurring_info['duration']) { $text = $trial_text . sprintf($this->language->get('text_payment_description'), $price, $recurring_info['cycle'], $frequencies[$recurring_info['frequency']], $recurring_info['duration']); } else { $text = $trial_text . sprintf($this->language->get('text_payment_cancel'), $price, $recurring_info['cycle'], $frequencies[$recurring_info['frequency']], $recurring_info['duration']); } $json['success'] = $text; } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } }
  9. Доброй ночи! Версия ocStore 2.1.0.2.1 Шаблон свой, делал верстку, потом натяжку по примеру дефолтного шаблона. На странице товара, не могу вывести уведомление об отправке комментария и при нажатие на кнопку "Продолжить" пишет Загрузка... и больше ничего, поля также не сбрасываются, но в админку приходят коменты для модерации. На дефолтном шаблоне тоже не работает... $('#review').delegate('.pagination a', 'click', function(e) { e.preventDefault(); $('#review').fadeOut('slow'); $('#review').load(this.href); $('#review').fadeIn('slow'); }); $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>'); $('#button-review').on('click', function() { $.ajax({ url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>', type: 'post', dataType: 'json', data: $("#form-review").serialize(), beforeSend: function() { $('#button-review').button('loading'); }, complete: function() { $('#button-review').button('reset'); }, success: function(json) { $('.alert-success, .alert-danger').remove(); if (json['error']) { $('#revie').after('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>'); } if (json['success']) { $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>'); $('input[name=\'name\']').val(''); $('textarea[name=\'text\']').val(''); $('input[name=\'rating\']:checked').prop('checked', false); } } }); }); <?php if ($review_status) { ?> <div class="tab-pane" id="tab-review"> <form class="form-horizontal" id="form-review"> <div id="review"></div> <h2><?php echo $text_write; ?></h2> <?php if ($review_guest) { ?> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-name"><?php echo $entry_name; ?></label> <input type="text" name="name" value="" id="input-name" class="form-control" /> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label" for="input-review"><?php echo $entry_review; ?></label> <textarea name="text" rows="5" id="input-review" class="form-control"></textarea> <div class="help-block"><?php echo $text_note; ?></div> </div> </div> <div class="form-group required"> <div class="col-sm-12"> <label class="control-label"><?php echo $entry_rating; ?></label> &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp; <input type="radio" name="rating" value="1" /> &nbsp; <input type="radio" name="rating" value="2" /> &nbsp; <input type="radio" name="rating" value="3" /> &nbsp; <input type="radio" name="rating" value="4" /> &nbsp; <input type="radio" name="rating" value="5" /> &nbsp;<?php echo $entry_good; ?> </div> </div> <?php echo $captcha; ?> <div class="buttons clearfix"> <div class="pull-right"> <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button> </div> </div> <?php } else { ?> <?php echo $text_login; ?> <?php } ?> </form> </div> <?php } ?>
  10. Добрый вечер! Версия ocStore 2.1.0.2.1 Шаблон свой, делал верстку, потом натяжку по примеру дефолтного шаблона. Такая проблема, не работает кнопка "В корзину" на странице товара, при нажатие выдает "Загрузка..." и больше ничего... Ссылка на сайт: https://snabzhenec.zp.ua/zapchasti_k_traktoram/zapchasti_yumz/kpp_i_zadnij_most_umz/differencial_40_2403010.html <div class="section-buy"> <div class="add-to-cart"> <div class="coint-product"> <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="quantity-num" /> <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" /> <div class="arrow-coint"> <i id="up-product" class="fas fa-sort-up"></i> <i id="down-product" class="fas fa-sort-down"></i> </div> </div> <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> </div> <?php if ($minimum > 1) { ?> <div class="alert alert-info"><i class="fa fa-info-circle"></i> <?php echo $text_minimum; ?></div> <?php } ?> <div class="fast-add-to-cart"> <button type="button" data-toggle="tooltip" class="comparisons btn-default" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product_id; ?>');"><i class="fas fa-exchange-alt"></i></button> </div> </div> <script type="text/javascript"><!-- $('#button-cart').on('click', function() { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', beforeSend: function() { $('#button-cart').button('loading'); }, complete: function() { $('#button-cart').button('reset'); }, success: function(json) { $('.alert, .text-danger').remove(); $('.add-to-cart').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { $('#content').after('<div class="alert alert-success">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>'); $('#cart > div').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>'); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); //--> </script>
  11. Добрый вечер! Нужна помощь, есть такая проблема, на первой странице всё в порядке, а дальше идет такая вот фигня. Что делать не знаю, подскажите пожалуйста. Ссылка на сайт: https://axk.com.ua/zasobi-zahistu-roslin/?page=3
  12. Разобрался, я изначально всё делал правильно, но не показывало, потому что нужно было обновить кэш модификатора , а так как вылетала ошибка, я проверить форму не мог. В общем сравнил два файлика на которых жалуется, один перед обновление кэша, воторой после, и сделал как нужно.
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.