-
Публікації
607 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем max1985
-
-
Спасибо krumax !
Сделал так:
$related_to = $this->model_catalog_product->getProductRelated($result['product_id']);
Ошибка Notice: Undefined index: product_id исчезла. С выводом пока борюсь!
-
2 часа назад, nikifalex сказал:
диктуйте, а я буду нажимать на кнопки.
Или какого рода помощь вы хотите?
Я просто уходил с работы и не успел накатать с чего начал, а Вы так сразу критично ))
Вот что сделал:
В контроллере, перед
$data['products'][] = array(
Вставил это:
$related_to = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); foreach ($related_to as $result) { $related_to = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); }
а после
$data['products'][] = array(
добавил это
'related' => $related_to,
В темплейте в <?php foreach ($products as $product) { ?> попробовал вывести так:
<?php foreach ($product as $related_to) { ?> <p><?php echo $product['name']; ?></p> <?php } ?>
Но что-то пошло не так... Предупреждения Notice: Undefined index: product_id и в каждом товаре длинный список с его названием.
Буду благодарен любой помощи!
-
AWARO, Спасибо за предложение! Но такой огромный функционал мне не нужен... Хочу обойтись стандартными средствами.
-
Здравствуйте!
Собственно надо вывести Модели рекомендуемых товаров в каждой карточке на странице категории.
Рекомендуемые товары те что заполняются в товаре на вкладке Связи.
Помогите пожалуйста реализовать!
-
Здравствуйте!
Нужно реализовать в карточке товара другую галерею
- Миниатюры слева, при нажатии на них открывается картинка в блоке с права. Должна быть возможность листать миниатюры если их больше 3-4.
- При нажатии на большую картинку справа открывается галерея, на подобие стандартной, но с выводом миниатюр. Или вместо галереи сделать при наведении Zoom места наведения.
Может есть подобный модуль? Или может кто сможет реализовать за оплату?
opencart 2.3
-
Здравствуйте!
В редакторе summernote есть кнопка "Убрать стили шрифта". Она работает как-то криво, оставляет <span>, style и прочее...
Можно ли в этом редакторе добавить еще одну кнопку "Очистить форматирование", которая будет оставлять только чистые <div>, <p>, <a htef="">, как например в TinyMCE?
Спасибо!
-
Модуль может выгружать csv файл по крону? будет он перезаписоватся или будет создаваться новый?
Мне на сайте нужно вывести ссылку для скачки товаров csv формате, чтоб файл всегда был в актуальном состоянии. Справиться с этим модуль?
-
2 часа назад, WellChuck сказал:
в контроллере
$data['customer_group_id'] = $this->config->get('config_customer_group_id'); $customer_groups = $this->model_account_customer_group->getCustomerGroups(); foreach ($customer_groups as $customer_group) { if (in_array($customer_group['customer_group_id'], $this->config->get('config_customer_group_display'))) { $data['customer_groups'][] = $customer_group; } }
После вставки этого кода начинает выдавать ошибку 500. Совсем уже запутался.
-
40 минут назад, WellChuck сказал:
Так просто уберите <?php if ($customer_group_id == 1) { ?> из html
появился селект, но в нем пусто
видимо в контроллере Хедера надо прописывать $customer_group_id
-
Все равно выдает Notice: Undefined variable: customer_group_id
Что ему не хватает
-
Неужели нет таких модулей?
-
52 минуты назад, krumax сказал:
@max1985 видимо я зря Вам выше дал ссылку на топик, где пошагово видно что и где нужно делать.
Группа покупателя хранится в БД в таблице _customer
именно туда и нужно писать выбранное покупателем id группы.
Ваш код этого не делает и соответственно группа у покупателя осталась прежней.
Спасибо! Да я видел эту тему, но там все так запутано решыл сделать с нуля на основе выбора валюты.
Я так понимаю в Моделе надо привязываться к таблице customer, и связывать ее с customer_group_description для вывода имени группы?
-
Часть проблем ушла при помощи Ulv.
Теперь выбирается Группа и сохраняется при переходах по страницам, но цены на сайте не меняются, хотя при выборе группы идет обновление страницы.
На данный момент так:
Контроллер
Спойлер<?php class ControllerCommonCustomer extends Controller { public function index() { $this->load->language('common/customer'); $data['text_customer'] = $this->language->get('text_customer'); $data['action'] = $this->url->link('common/customer/customer', '', isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))); $this->load->model('localisation/customer'); //var_dump($this->config->get('customer_group_default')); if(empty($this->session->data['customer_group_id'])){ $data['code'] = $this->session->data['customer_group_id'] = $this->config->get('config_customer_group_id'); }else{ $data['code'] = $this->session->data['customer_group_id']; } //var_dump($this->config->get('customer_group_default')); $data['customer_groups'] = array(); $results = $this->model_localisation_customer->getCurrencies(); foreach ($results as $result) { if ($result['name']) { $data['customer_groups'][] = array( 'id' => $result['customer_group_id'], 'name' => $result['name'] ); } } if (!isset($this->request->get['route'])) { $data['redirect'] = $this->url->link('common/home'); } else { $url_data = $this->request->get; unset($url_data['_route_']); $route = $url_data['route']; unset($url_data['route']); $url = ''; if ($url_data) { $url = '&' . urldecode(http_build_query($url_data, '', '&')); } $data['redirect'] = $this->url->link($route, $url, isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))); } return $this->load->view('common/customer', $data); } public function customer() { if (isset($this->request->post['code'])) { $this->session->data['customer_group_id'] = $this->request->post['code']; } if (isset($this->request->post['redirect'])) { $this->response->redirect($this->request->post['redirect']); } else { $this->response->redirect($this->url->link('common/home')); } } }
Модель
Спойлер<?php class ModelLocalisationCustomer extends Model { public function getCustomerByName($customer) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer_group_description WHERE name = '" . $this->db->escape($customer) . "'"); return $query->row; } public function getCurrencies() { $customer_data = $this->cache->get('customer'); if (!$customer_data) { $customer_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description ORDER BY name ASC"); foreach ($query->rows as $result) { $customer_data[$result['name']] = array( 'customer_group_id' => $result['customer_group_id'], 'language_id' => $result['language_id'], 'name' => $result['name'], 'description' => $result['description'] ); } $this->cache->set('customer', $customer_data); } return $customer_data; } }
Темплейт
Спойлер<?php if (count($customer_groups) > 1) { ?> <div class="pull-left"> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-customer"> <div class="btn-group"> <button class="btn btn-link dropdown-toggle" data-toggle="dropdown"> <?php foreach ($customer_groups as $customer) { ?> <?php if ($customer['id'] == $code) { ?> <strong><?php echo $customer['name']; ?></strong> <?php } ?> <?php } ?> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_customer; ?></span> <i class="fa fa-caret-down"></i></button> <ul class="dropdown-menu"> <?php foreach ($customer_groups as $customer) { ?> <li><button class="customer-select btn btn-link btn-block" type="button" name="<?php echo $customer['id']; ?>"><?php echo $customer['name']; ?></button></li> <?php } ?> </ul> </div> <input type="hidden" name="code" value="" /> <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" /> </form> </div> <?php } ?>
-
16 часов назад, Ulv сказал:
Сделать копии файлов model/currency.php, controller/currency.php, view/theme/*/common/currency.tpl, language/russian/currency.php, system/library/currency.php В индексном файле добавить
$registry->set('customer_group', new CustonerGroup($registry));
Заменить в названии классов, Currency на UserGroup, переименовать файлы. В модели описать выборку из БД групп, в контроллере сделать вывод этой выборки в массив и сделать вывод этого в шаблоне tpl. В файле system/library/currency.php задавать куки уже для групп.. Поверхностно.
Сделал как Вы посоветовали. Не нашел только файла system/library/currency.php В итоге в шапке появился выбор. Но есть несколько проблем.
1. Выдает одну ошибку Notice: Undefined index: customer. Ругается на эту строчку:
$data['name'] = $this->session->data['customer'];
2. Не выводит рядом с формой текущую группу. Наверно не понимает такое условие:
<?php if ($customer['name'] == $name) { ?>
3. Я так понимаю не выбирает и не меняет группу.
Вот что у меня сейчас в файлах:
Контроллер
Спойлер<?php class ControllerCommonCustomer extends Controller { public function index() { $this->load->language('common/customer'); $data['text_customer'] = $this->language->get('text_customer'); $data['action'] = $this->url->link('common/customer/customer', '', isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))); $data['name'] = $this->session->data['customer']; $this->load->model('localisation/customer'); $data['currencies'] = array(); $results = $this->model_localisation_customer->getCurrencies(); foreach ($results as $result) { if ($result['name']) { $data['currencies'][] = array( 'name' => $result['name'] ); } } if (!isset($this->request->get['route'])) { $data['redirect'] = $this->url->link('common/home'); } else { $url_data = $this->request->get; unset($url_data['_route_']); $route = $url_data['route']; unset($url_data['route']); $url = ''; if ($url_data) { $url = '&' . urldecode(http_build_query($url_data, '', '&')); } $data['redirect'] = $this->url->link($route, $url, isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))); } return $this->load->view('common/customer', $data); } public function customer() { if (isset($this->request->post['name'])) { $this->session->data['customer'] = $this->request->post['name']; unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); } if (isset($this->request->post['redirect'])) { $this->response->redirect($this->request->post['redirect']); } else { $this->response->redirect($this->url->link('common/home')); } } }
Модель
Спойлер<?php class ModelLocalisationCustomer extends Model { public function getCustomerByName($customer) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer_group_description WHERE name = '" . $this->db->escape($customer) . "'"); return $query->row; } public function getCurrencies() { $customer_data = $this->cache->get('customer'); if (!$customer_data) { $customer_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description ORDER BY name ASC"); foreach ($query->rows as $result) { $customer_data[$result['name']] = array( 'customer_group_id' => $result['customer_group_id'], 'language_id' => $result['language_id'], 'name' => $result['name'], 'description' => $result['description'] ); } $this->cache->set('customer', $customer_data); } return $customer_data; } }
Темплейт
Спойлер<?php if (count($currencies) > 1) { ?> <div class="pull-left"> <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-customer"> <div class="btn-group"> <button class="btn btn-link dropdown-toggle" data-toggle="dropdown"> <?php foreach ($currencies as $customer) { ?> <?php if ($customer['name'] == $name) { ?> <strong><?php echo $customer['name']; ?></strong> <?php } ?> <?php } ?> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_customer; ?></span> <i class="fa fa-caret-down"></i></button> <ul class="dropdown-menu"> <?php foreach ($currencies as $customer) { ?> <li><button class="customer-select btn btn-link btn-block" type="button" name="<?php echo $customer['name']; ?>"><?php echo $customer['name']; ?></button></li> <?php } ?> </ul> </div> <input type="hidden" name="name" value="" /> <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" /> </form> </div> <?php } ?>
Подскажите куда копать! Спасибо!
-
В 13.06.2018 в 21:16, WellChuck сказал:
Всё работает, никаких проблем.
Как всегда... просто надо головой думать, когда код правишь.
Ещё раз благодарю!
Здравствуйте!
А можете решение полностью выложить, а то я что-то растерялся во всем этом?
Спасибо!
-
ocStore 2.3.0.2.3
Для того чтобы пользователь мог выбрать группу пользователей и видеть свои цены.
-
Здравствуйте! Подскажите пожалуйста как реализовать выбор Группы пользователей в шапке сайта. На примере как реализовано выбор валюты.
-
Здравствуйте! А никто не делал вывод выбора Группы пользователей? Что-то похожее на выбор валюты или языка.
-
Здравствуйте!
Подскажите пожалуйста модуль для экспорта форматов XML, YML, CSV для пользователей.
Нужно сделать страницу где будет возможность для клиента скачать файлы форматов XML, YML, CSV, которые они смогут импортировать к себе на сайт.
-
1 час назад, senao сказал:
Только хотел покупать. У самого установлен MFP и использую опции в нем.
Как решиться проблема, куплю данный модуль. Просьба разработчика сообщить о решении данной проблемы.
Можете покупать. Проблема решилась правкой двух строчек.
В admin/model/module/mega_filter.php
Изменил на:
`o`.`type` IN( 'select', 'radio', 'input_qty', 'input_qty_ns', 'select_qty', 'input_qty_td', 'checkbox', 'image' )
В catalog/model/module/mega_filter.php
Изменил на:
$conditions[] = "`o`.`type` IN('radio','input_qty','input_qty_ns','select_qty','input_qty_td','checkbox','select','image','image_radio')";
-
Здравствуйте!
Купил и установил модуль. Все круто, то что искал!
Появилась одна небольшая проблемка, Mega Filter PRO не видит Опций с таким типом. Подскажите как решить данную проблему?
Спасибо!
-
Модуль совместим с Simple One Page Checkout?
-
И товары вывел. Осталось картинку категории присвоить.
Спойлер<?xml version="1.0" encoding="utf-8"?> <modification> <name>Categories in Tag</name> <version>1.0</version> <code>Categories-in-Tag</code> <author>Max</author> <link>https://allkharkov.info</link> <file path="catalog/model/catalog/tags.php"> <operation error="log"> <search><![CDATA[public function getTag($tag_id) {]]></search> <add position="before"><![CDATA[ public function getTagCategories($tag_id) { $query = $this->db->query(" SELECT DISTINCT c.category_id,cd.name FROM ". DB_PREFIX . "tag t LEFT JOIN ". DB_PREFIX. "product_to_tag p2t ON (t.tag_id = p2t.tag_id) LEFT JOIN ". DB_PREFIX. "product_to_category p2c ON (p2c.product_id = p2t.product_id) LEFT JOIN ". DB_PREFIX. "category c ON (c.category_id = p2c.category_id) LEFT JOIN ". DB_PREFIX. "category_description cd ON (cd.category_id = p2c.category_id) WHERE t.status = 1 AND t.tag_id = '".(int)$tag_id."' AND c.status= 1 "); return $query->rows; } ]]></add> </operation> </file> <file path="catalog/controller/product/tags.php"> <operation error="log"> <search><![CDATA[if (isset($this->request->get['tag_id'])) {]]></search> <add position="before"><![CDATA[ if (isset($this->request->get['category_id'])) { $category_id = (int)$this->request->get['category_id']; } else { $category_id = 0; } ]]></add> </operation> <operation error="log"> <search><![CDATA[if ($tag_info) {]]></search> <add position="after"><![CDATA[ $tag_categories = $this->model_catalog_tags->getTagCategories($tag_id); $categories = array(); $data['tag_categories'] = array(); foreach ($tag_categories as $category) { if (!isset($this->request->get['category_id'])) { $data['tag_categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'], 'href' => $this->url->link('product/tags', '&category_id=' . $category['category_id'], 'SSL') ); } $categories[$category['category_id']] = $category['name']; } $data['products_all'] = array(); for( $x = 0; $x < count( $data['tag_categories'] ); $x++ ) { $cat = $data['tag_categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_tag_id' => $tag_id, 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'name' => $result['name'], 'href' => $this->url->link('product/product', 'path=' . '&product_id=' . $result['product_id']) ); } } ]]></add> </operation> <operation error="log"> <search><![CDATA[$url = '';]]></search> <add position="after"><![CDATA[ if (isset($this->request->get['category_id'])) { $url .= '&category_id=' . $this->request->get['category_id']; } ]]></add> </operation> <operation error="log"> <search><![CDATA['filter_tag_id' => $tag_id,]]></search> <add position="after"><![CDATA[ 'filter_category_id' => $category_id, 'filter_sub_category' => true, ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/product/tags.tpl"> <operation error="log"> <search><![CDATA[<div class="row cat-l">]]></search> <add position="before"><![CDATA[ <?php if ($tag_categories) { ?> <div class="row category"> <div class="subcats"> <div> <div class="tag_categories"> <?php foreach ($tag_categories as $category) { ?> <div class="col-lg-4 col-md-6 col-sm-6 col-xs-12 bl-sk"> <div class="col-lg-4 col-md-4 col-sm-4 col-xs-4"> Картинка </div> <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8"> <h3 class="category-item-name"> <a href="<?php echo $category['href']; ?>"> <?php echo $category['name']; ?></a> </h3> <hr class="category-item-line"> <?php if ($products_all[ $category['category_id'] ]) { ?> <ul class="tov-cat"> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <li><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></li> <?php } ?> </ul> <?php } ?> </div> </div> <?php } ?> </div> </div></div></div> <?php } ?> ]]></add> </operation> </file> </modification>
-
Получилось сделать так:
<?xml version="1.0" encoding="utf-8"?> <modification> <name>Categories in Tag</name> <version>1.0</version> <code>Categories-in-Tag</code> <author>Max</author> <link>https://allkharkov.info</link> <file path="catalog/model/catalog/tags.php"> <operation error="log"> <search><![CDATA[public function getTag($tag_id) {]]></search> <add position="before"><![CDATA[ public function getTagCategories($tag_id) { $query = $this->db->query(" SELECT DISTINCT c.category_id,cd.name FROM ". DB_PREFIX . "tag t LEFT JOIN ". DB_PREFIX. "product_to_tag p2t ON (t.tag_id = p2t.tag_id) LEFT JOIN ". DB_PREFIX. "product_to_category p2c ON (p2c.product_id = p2t.product_id) LEFT JOIN ". DB_PREFIX. "category c ON (c.category_id = p2c.category_id) LEFT JOIN ". DB_PREFIX. "category_description cd ON (cd.category_id = p2c.category_id) WHERE t.status = 1 AND t.tag_id = '".(int)$tag_id."' AND c.status= 1 "); return $query->rows; } ]]></add> </operation> </file> <file path="catalog/controller/product/tags.php"> <operation error="log"> <search><![CDATA[if (isset($this->request->get['tag_id'])) {]]></search> <add position="before"><![CDATA[ if (isset($this->request->get['category_id'])) { $category_id = (int)$this->request->get['category_id']; } else { $category_id = 0; } ]]></add> </operation> <operation error="log"> <search><![CDATA[if ($tag_info) {]]></search> <add position="after"><![CDATA[ $tag_categories = $this->model_catalog_tags->getTagCategories($tag_id); $categories = array(); $data['tag_categories'] = array(); foreach ($tag_categories as $category) { if (!isset($this->request->get['category_id'])) { $data['tag_categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'], 'href' => $this->url->link('product/tags', '&category_id=' . $category['category_id'], 'SSL') ); } $categories[$category['category_id']] = $category['name']; } ]]></add> </operation> <operation error="log"> <search><![CDATA[$url = '';]]></search> <add position="after"><![CDATA[ if (isset($this->request->get['category_id'])) { $url .= '&category_id=' . $this->request->get['category_id']; } ]]></add> </operation> <operation error="log"> <search><![CDATA['filter_tag_id' => $tag_id,]]></search> <add position="after"><![CDATA[ 'filter_category_id' => $category_id, 'filter_sub_category' => true, ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/product/tags.tpl"> <operation error="log"> <search><![CDATA[<?php if ($products) { ?>]]></search> <add position="after"><![CDATA[ <?php if ($tag_categories) { ?> <div class="tag_categories"> <?php foreach ($tag_categories as $category) { ?> <div style="display:inline-block;float:left;padding:3px 12px;border:1px solid #ccc;margin:0 15px 10px 0;"> <a href="<?php echo $category['href']; ?>"> <?php echo $category['name']; ?></a> </div> <?php } ?> </div> <div class="clearfix"></div> <?php } ?> ]]></add> </operation> </file> </modification>
Теперь хочу присвоить товар к своей категории. Может подскажите как реализовать?
Чтоб получилось:
Категория 1
- Товар 1.1
- Товар 1.2
- Товар 1.3
Категория 2
- Товар 2.1
- Товар 2.2
- Товар 2.3
[Решено] Вывод модели рекомендуемых товаров в каждой карточке на странице категории
в Opencart 2.x: Загальні питання
Опубліковано:
Ничего не изменилось http://lipar.de/index.php?route=product/category&path=20
Может проблема в выводе?