

munhgauzen
Users-
Posts
269 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by munhgauzen
-
<div class="search-box"> <input class="search-txt1" type="text1" value="<?php echo $search; ?>" placeholder="<?php echo $text_search; ?>" /> <button type="button" class="search-btn1"><i class="fa fa-search"></i></button> </div> Переделал в рвздвижной вид кнопку поиск все красиво но сам поиск не рабатывает . Кто подскажет то где я промахнулся?
-
если не получится самому, то смогу помочь сегодня после 20.00 по teamview-ру
-
в схемам(макетах) страниц добавил лишнюю схему "Аккаунт"
-
[Поддержка] Запрет действий пользователей админки
munhgauzen replied to chukcha's topic in Другие дополнения
модуль купил но заявленного контента не нашел ("Разрешить редактировать только свои товары") Автору модуля просьба решить проблему как можно быстрее- 88 replies
-
- запрет действий
- управление правами
- (and 2 more)
-
ограничение прав контент менеджеров
munhgauzen replied to munhgauzen's topic in Opencart 2.x: Extension search
модуль купил но заявленного контента не нашел ("Разрешить редактировать только свои товары") Автору модуля просьба решить проблему как можно быстрее. -
товарищь помог. Может кому пригодится. protected function getTotalBought($product_id, $order_status_id = 0){ $bought = 0; $filter_status = " AND o.order_status_id > 0"; if($order_status_id ) { $filter_status = " AND o.order_status_id IN (".implode(",",$order_status_id).")"; } $query = $this->db->query("SELECT sum(quantity) as `total` FROM `" . DB_PREFIX . "order_product` op LEFT JOIN `".DB_PREFIX."order` AS o ON op.order_id = o.order_id WHERE op.product_id = ".$product_id.$filter_status); if($query->num_rows){ if (!is_null($query->row['total'])) return $query->row['total']; else return 0; } return 0;
-
Ребята помогитее пожалуйста может кто делал. За основу брал модуль https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=15185&filter_license=0&filter_download_id=31&page=12 Вот эта фунцию перене featured.php (соответсвенно все tpl ипеременные языка заменил) protected function getTotalBought($product_id, $order_status_id = 0){ $bought = 0; $filter_status = " AND o.order_status_id > 0"; if($order_status_id ) { $filter_status = " AND o.order_status_id IN (".implode(",",$order_status_id).")"; } $query = $this->db->query("SELECT sum(quantity) as `total` FROM `" . DB_PREFIX . "order_product` op LEFT JOIN `".DB_PREFIX."order` AS o ON op.order_id = o.order_id WHERE op.product_id = ".$product_id.$filter_status); if($query->num_rows){ return $query->row['total']; } return 0; } Но модуль ничего не выводит Вот все тело featured.php <?php class ControllerModuleFeatured extends Controller { protected function getTotalBought($product_id, $order_status_id = 0){ $bought = 0; $filter_status = " AND o.order_status_id > 0"; if($order_status_id ) { $filter_status = " AND o.order_status_id IN (".implode(",",$order_status_id).")"; } $query = $this->db->query("SELECT sum(quantity) as `total` FROM `" . DB_PREFIX . "order_product` op LEFT JOIN `".DB_PREFIX."order` AS o ON op.order_id = o.order_id WHERE op.product_id = ".$product_id.$filter_status); if($query->num_rows){ return $query->row['total']; } return 0; } public function index($setting) { $this->load->language('module/featured'); $data['heading_title'] = $this->language->get('heading_title'); $data['text_tax'] = $this->language->get('text_tax'); $data['button_cart'] = $this->language->get('button_cart'); $data['button_wishlist'] = $this->language->get('button_wishlist'); $data['button_compare'] = $this->language->get('button_compare'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['products'] = array(); if (!$setting['limit']) { $setting['limit'] = 4; } if (!empty($setting['product'])) { $products = array_slice($setting['product'], 0, (int)$setting['limit']); foreach ($products as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { $data['language'] = $this->language; $data['sold_items'] = $this->getTotalBought($product_info['product_id']); if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); } else { $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = $product_info['rating']; } else { $rating = false; } $data['products'][] = array( 'product_id' => $product_info['product_id'], 'thumb' => $image, 'name' => $product_info['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'rating' => $rating, 'reviews' => $product_info['reviews'], 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']) ); } } } if ($data['products']) { if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/module/featured.tpl', $data); } else { return $this->load->view('default/template/module/featured.tpl', $data); } } } }
-
ограничение прав контент менеджеров
munhgauzen replied to munhgauzen's topic in Opencart 2.x: Extension search
цена модуля какова? -
Нужно чтобы контент менеджеры не могли редактировать чужие товары (тоесть те товары которые они не вводили)
-
обмен данными через api iiko
munhgauzen replied to munhgauzen's topic in Opencart 2.x: Extension search
Сори. Вот тут есть больше информации. https://ru.iiko.help/articles/#!api-documentations/kak-podkluchit-api ps Я не изучал документацию... -
Может у кого есть готовое решение? Нужно чтобы модуль по крону(желательно) загружал и обновлял все данные по товарам и категориями. Прошу назвать цену. https://examples.iiko.ru/front/
-
OccStore 2.3 не могу перенести переменную из product.php в manufacturer.php Для правильного отображения цен на опции товара необходимо значение переменной $price из product.php перенксти лтбо получить в контроллере manufacturer.php Вот массив из product.php $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), $this->session->data['currency']); //only + prefics $price_calc = $this->currency->format($this->tax->calculate($option_value['price']+$product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; $price_calc = $data['price']; } //only + prefics $product_option_value_data[] = array( 'quantity' => $option_value['quantity'], 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $option_value['image'] ? $this->model_tool_image->resize($option_value['image'], 50, 50) : '', 'price' => $price, 'price_calc' => $price_calc, 'price_prefix' => $option_value['price_prefix'] ); } } А вот массив из manufacturer.php $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if ($show_no_stock || !$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']) { if ($option_value['price_prefix'] == '+') { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $price_calc = $this->currency->format($this->tax->calculate($option_value['price']+$product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price_option = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } } else { $price = false; $price_calc = $option_value['price']; } $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' => (int)$show_image ? $this->model_tool_image->resize($option_value['image'], 50, 50) : false, 'price' => $price, 'price_calc' => $price_calc, 'price_prefix' => $option_value['price_prefix'], 'quantity' => (int)$show_quantity ? $option_value['quantity'] . $this->language->get('text_oc_quantity') : false ); } } В конечном итоге значение переменной $price разное кто подскажет как получить значение переменной $price из product.php в manufacturer.php Cпасибо заранее
-
javascript plus блокирует передачу количества
munhgauzen replied to munhgauzen's topic in Opencart 2.x: Sandbox
решил самостоятельно. Скрипт верно написан. Была неверно написана форма input Вот готовы ocmod скрипт: <?xml version="1.0" encoding="UTF-8"?> <modification> <name>Spinner Product</name> <code>spinner_product_qty</code> <version>2.0</version> <link></link> <author>opencart.com</author> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search><![CDATA[<?php echo $entry_qty; ?></label>]]></search> <add position="after"><![CDATA[<div class="input-group2 number-spinner"> <span class="input-group-btn"> <button class="btn btn-default" data-dir="dwn"><i class="fa fa-minus"></i></button> </span> <input type="text" min="1" max="1000" name="quantity" value="<?php echo $minimum; ?>" id="d-only" class="form-control text-center" /> <span class="input-group-btn"> <button class="btn btn-default" data-dir="up"><i class="fa fa-plus"></i></button> </span> </div>]]></add> </operation> <operation> <search><![CDATA[<input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />]]></search> <add position="replace"><![CDATA[]]></add> </operation> <operation> <search><![CDATA[<?php echo $footer; ?>]]></search> <add position="before"><![CDATA[ <script type="text/javascript"><!-- $(document).on('click', '.number-spinner button', function () { var btn = $(this), oldValue = btn.closest('.number-spinner').find('input').val().trim(), newVal = 1; if (btn.attr('data-dir') == 'up') { newVal = parseInt(oldValue) + 1; } else { if (oldValue > 1) { newVal = parseInt(oldValue) - 1; } else { newVal = 1; } } btn.closest('.number-spinner').find('input').val(newVal); }); //--></script><script> document.getElementById("d-only").onkeypress= function(event){ event= event || window.event; if (event.charCode && (event.charCode < 48 || event.charCode > 57))// проверка на event.charCode - чтобы пользователь мог нажать backspace, enter, стрелочку назад... return false; }; </script>]]></add> </operation> </file> </modification> -
Коллеги и друзья - прошу помощи. Добавил корректировку в ocmod "плюс минус количества" чтобы можно было ввести только цифры.Теперь скрипт не хочет передавать данные в переменную newVal - теперь она всегда равна 1(еденице) Подскажите пожалуйста как решить проблемку. Заранее благодарен <search><![CDATA[<?php echo $footer; ?>]]></search> <add position="before"><![CDATA[<script type="text/javascript"><!-- $(document).on('click', '.number-spinner button', function () { var btn = $(this), oldValue = btn.closest('.number-spinner').find('input').val().trim(), newVal = 1; if (btn.attr('data-dir') == 'up') { newVal = parseInt(oldValue) + 1; } else { if (oldValue > 1) { newVal = parseInt(oldValue) - 1; } else { newVal = 1; } } btn.closest('.number-spinner').find('input').val(newVal); }); //--></script><script> document.getElementById("d-only").onkeypress= function(event){ event= event || window.event; if (event.charCode && (event.charCode < 48 || event.charCode > 57))// проверка на event.charCode - чтобы пользователь мог нажать backspace, enter, стрелочку назад... return false; }; </script>]]></add>
-
Ребята приветствую. Может кто подскажет(я пока в javascript) не силен. Нужно добавить условие, чтобы при при вводе значения вручную (не только кнопкой "плюс" либо " минус") можно было менять значения Заранее спасибо. <script type="text/javascript"><!-- $(document).on('click', '.number-spinner button', function () { var btn = $(this), oldValue = btn.closest('.number-spinner').find('input').val().trim(), newVal = 1; if (btn.attr('data-dir') == 'up') { newVal = parseInt(oldValue) + 1; } else { if (oldValue > 1) { newVal = parseInt(oldValue) - 1; } else { newVal = 1; } } btn.closest('.number-spinner').find('input').val(newVal); }); //--></script>
-
Доброго дня.! Ребята может кто подскажет где снять ограничение на количество символов в описании опции По дефолту оно 128. А нужно в двое больше. В таблице oc_option_value_description я уже изменил варчар с128 на text Но все равно ругается не дает записать описание .