-
Публікації
185 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем Linkoln
-
-
Я решил сделать фильтр через категории, то есть добавляем к статье категорию, через стандартный функционал блога, и потом уже, во фронте, через ajax фильтруем по-этим категориям. Получается, что у одной статьи могло быть одна и больше категорий, вот я и не могу сообразить, как составить sql для того, что бы выбрать article_id у которой blog_category_id совпадает сразу с несколькими переданными значениями, например, как получить все статьи у которых blog_category_id = 73 & 70
-
2 дня топчусь на одном месте, хожу по-кругу. Подскажите кто-нибудь, кто знает, может есть способ какой, организовать фильтр по категориям блога. Плиз, голова взырвается
-
6 minutes ago, openprice said:
наверное так?
select article_id from table where blog_category_id in (70, 73)
блин. не тот запрос
Не тот, пробовал, так находит только одно из совпадений, а нужно что бы по всем трем
-
-
Подскажите кто-нибудь, как добавить в конец запроса, варианты ключей переданного в аргументе массива
-
Протестировал. Не работает)
-
Короч попробовал вот так:
public function getArticlesByFilter($data){
$sql = "SELECT a.article_id " . " FROM " . DB_PREFIX . "article a";
$sql .= " LEFT JOIN " . DB_PREFIX . "article_to_blog_category a2c ON (a.article_id = a2c.article_id)";
$sql .= " LEFT JOIN " . DB_PREFIX . "article_description ad ON (a.article_id = ad.article_id) WHERE ad.language_id = '" . (int)$this->config->get('config_language_id') ."' AND a.status = '1' ";
$sql .= " AND a2c.blog_category_id IN (" . implode(', ', $data) . ")";
$article_data = array();
$query = $this->db->query($sql);foreach ($query->rows as $result) {
$article_data[$result['article_id']] = $this->getArticle($result['article_id']);
}return $article_data;
}пока тестирую
-
Всем добрый день, возникла необходимость написать простенький ajax фильтр, для фильтрации категорий блога. То есть имеется блог, в нем идут две основные категории, в которых может находится произвольное количество субкатегорий. в статьи могут входить и в одну и из субкатегорий, во фронте нужно сделать фильтрацию по этим субкатегориям, по каждой отдельно или по нескольким сразу. получить список статей через model_blog_article->getArticles() я так понимаю не получится, потому что у статей могут быть несколько категорий, решил дописать собственную функцию в модели getArticlesByFilter() аргументом в которую буду передавать массив категорий (либо одна, либо 2) не могу сообразить, как в организовать для всего этого sql- запрос, что бы выдавал мне список нужный статей. Я предполагаю как-то так:
public function getArticlesByFilter($filers){ $data_article = array(); $sql = "SELECT a.article_id " . " FROM " . DB_PREFIX . "article a"; foreach ($filters as $filter) { // здесь обходим каждый элемент массива аргументов sql.= .... } ...// тут заполняем массив $data_article и его же возвращаем
Но вот додумать не получается. Направте пожалуйста в нужную сторону
-
Есть сайт на opencart 2.3 https://vitromob.md/
Владелец просрочил оплату, после чего сайт пришлось восстанавливать из .gz архива, вроде бы все прошло отлично, база подключена, товары\категории работают, все работает, но revolution slider наотрез, я никак не могу сообразить в чем же дело, если кто-нибудь сталкивался или может навести на мысль, буду благодарен за любую помощь
-
49 minutes ago, markimax said:
Тогда смотрите модификаторы
Часто засовывают в /system
Найдите в коде модификаторов код добавления этих скриптовДа в том-то и дело, что скрипт добавляется прямо в шаблоне, там простой код
<div class="brand-slider"> <div id="banner{{ module }}" class="swiper-container"> <div class="swiper-wrapper">{% for banner in banners %} <div class="swiper-slide">{% if banner.link %}<a href="{{ banner.link }}"><img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" /></a>{% else %}<img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" />{% endif %}</div> {% endfor %}</div> </div> </div> <script > $('#banner{{ module }}').swiper({ slidesPerView: 5, spaceBetween: 10, autoplay: false, loop: false, autoplayDisableOnInteraction: false, // Responsive breakpoints breakpoints: { 479: { slidesPerView: 2 }, 767: { slidesPerView: 3 }, 991: { slidesPerView: 4 }, 1200: { slidesPerView: 5 } } }); </script>
Вопрос закрыт, нашел еще один модуль, который подключался на этой странице и добавлял этот скрипт, тему можно считать закрытой, всем спасибо за участие
-
9 minutes ago, markimax said:
Тогда смотрите модификаторы
Часто засовывают в /system
Найдите в коде модификаторов код добавления этих скриптовДа в том-то и дело, что скрипт добавляется прямо в шаблоне, там простой код
<div class="brand-slider"> <div id="banner{{ module }}" class="swiper-container"> <div class="swiper-wrapper">{% for banner in banners %} <div class="swiper-slide">{% if banner.link %}<a href="{{ banner.link }}"><img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" /></a>{% else %}<img src="{{ banner.image }}" alt="{{ banner.title }}" class="img-responsive" />{% endif %}</div> {% endfor %}</div> </div> </div> <script > $('#banner{{ module }}').swiper({ slidesPerView: 5, spaceBetween: 10, autoplay: false, loop: false, autoplayDisableOnInteraction: false, // Responsive breakpoints breakpoints: { 479: { slidesPerView: 2 }, 767: { slidesPerView: 3 }, 991: { slidesPerView: 4 }, 1200: { slidesPerView: 5 } } }); </script>
-
Twig кэш чистил установкой значеня в system/library/template/Twig/Environment.php
$this->debug = (bool) true;
и коментированиемpublic function load($key) { //if (file_exists($key)) { // @include_once $key; // } }
в system/library/template/Twig/Cache/Filesystem.php
-
Да в том-то и дело, что и системный и кэш модификаторов и twig кэш пробовал и чистить и отключил даже, ничего не помогает
-
Всем доброго дня. Столкнулся с такой любопытной проблемой, при отключении дефолтного модуля banner (брендлайдер) и даже после его полного удаления, если просматривать код через debuger, то видно, что в коде осталось, аж четыре его скрипта
$(".swiper-container-pimg-32").swiper({ spaceBetween: 0, nextButton: '.pimg-button-next-32', prevButton: '.pimg-button-prev-32', speed: 300, slidesPerView: 3, slidesPerColumn: 1, autoplay: false, simulateTouch: false, loop: false, breakpoints: { 479: { slidesPerView: 3 }, 767: { slidesPerView: 4 }, 991: { slidesPerView: 4 }, 1199: { slidesPerView: 3 } } }); $(".swiper-container-pimg-32 .img-slide").on('click', function() { var img = $(this).data('img'); $('.img-main-32').attr('src', img); $(".swiper-container-pimg-32 .img-slide").removeClass('active'); $(this).addClass('active'); });
И таких 4 штуки, только с id разными
Естественно, при отключенном модуле, консоль ругается Uncaught TypeError: $(...).swiper is not a function Системный кэш и кэш модификаций, чистил всеми возможными способами, кэш браузера в том числе. Под конец удалил контроллер и вьюшку модуля, но и это не помогло, в коде главной страницы, до сих пор висит 4 скрипта, созданных этим модулем. Помогите кто чем может, гугл молчит, идеи закончились. Версия: Ocstore 3.0.2.0 шаблон- Autima -
-
Пишите в личку, все решим, по адекватной цене
-
-
-
44 minutes ago, zCarot said:
перед забыли
$this->load->model('tool/image');
Не забыл, просто здесь не написал. В коде есть. Я вообщем посмотрел, у меня в админке, не было назначена картинка этому производителю... но что интересно в базе запись с url была, да и vardump($manufacturer_info['image']) тоже показывал строку. Картинку в админке добавил, вроде бы работает, но мне все-равно не понятны эти "маневры". И еще, может кто подскажет, в этом контроллере, если ошибка была допустим в строчке 144, то на сайте отоборажало, что ошибка скажем в строчке 155. Я чего-то недопонимаю?
-
Всем привет, уважаемые форумчане. Столкнулся с проблемой, пол дня бьюсь головой, и не могу понять в чем дело. Пытаюсь добавить в выводе производителей (отдельная страница) логотип производителя. В controller/manufacturer.php добавляю
$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
$main_image = $this->model_tool_image->resize($manufacturer_info['image'], 20,20);
$data['main_img']=$main_image;
и получаю... nullПробую var_dump($manufacturer_info['image']), все норм, выдает string(24) "catalog/demo/hp_logo.jpg", как бы все нормально, переменная не пустая, но после ресайза почему-то, она превращается в null. Подскажите пожалуйста, если кто сталкивался, что я не так делаю?
-
6 minutes ago, vier said:
это -
для модуля работы по Стандартным фильтрам.
а Ваш -
по моему, Вам здесь уже давно об этом объяснили.
Хорошо, если это метод выборки стандартных фильтров, то почему тогда во фронтенде выводятся характеристики. Поле "фильтр", у товаров не заполненно
-
22 minutes ago, vier said:
нет. - дело не в этом вообще.
1) есть модули фильтра, которые работают со Стандартными фильтрами Опенкарт,
2) если такие, которые работают с Атрибутами,
3) а есть такие, которые работают и с первым и вторым.
здесь правильно Вам сказали, что скорее всего -
это обработка Стандартных фильтров.
значит Вам сюда - https://prnt.sc/r05re1
но может Ваш фильтр работает именно с Атрибутами, и Вы не там ищите в коде, либо не заданы значения для другого Языка.
тогда Вам в карточку Товара во вкладку Атрибуты/Характиристики. пример - https://prnt.sc/r05v1k
Модуль с атрибутами работает. Я проверил другие модули, которые с атрибутами работают- то же самое в фильтре атрибуты дублируются. В админке характеристики на двух языках установленны. Проверял модель, метод getCategoryFilter() не тронут, такой же, как и в стандартном Ocstore
-
Такой вопрос: а может ли быть дело в том, что у меня стоит не opencart, а ocstore?
-
Поле фильтр тоже должно быть обязательно заполненно?
Бонусные баллы
в Допомога програмістам та розробникам
Опубліковано:
Всем доброго дня. Собрался писать модуль, который добавляет за каждую покупку бонусные баллы в зависимости от суммы заказа, то есть баллы за товар не учитываются, в админке задается несколько сумм и для каждой указываем количество бонусных баллов. Подсмотрел, как происходит добавление бонусных баллов за регистрацию в одном модуле, решил сделать аналогично, в catalog/controller/api/order.php добавил код, который считывает значения из конфига модуля и добавляет их и в 793 строчке, где добавляется история к заказу, добавил такой код
$discount_values = $this->config->get('module_reward_point_values'); $discount_pcnt = 1; if (is_array($discount_values)){ foreach ($discount_values as $discount_value) { if ($total['total'] > $discount_value['total'] ) $discount_pcnt = $discount_value['discount']; } } if($this->config->get('module_reward_point_status') && $order_info['customer_id']) { // Give reward point to customer when order finished. if(in_array($this->request->post['order_status_id'], $this->config->get('config_complete_status'))) { $this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" . $discount_pcnt . "', date_added = NOW()"); } // Pull back reward point order cancelled by admin if($this->config->get('config_fraud_status_id') == $this->request->post['order_status_id']) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_reward WHERE customer_id = '" . (int)$order_info['customer_id'] . "' AND description = '" . $this->db->escape($this->language->get('text_firstorder')) . "' AND order_id='" . (int)$order_id . "'"); if($query->num_rows >= 1) { $this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder_reverse')) . "', points = '-" . (float)$query->row['points'] . "', date_added = NOW()"); } } }
но ничего не происходит, значения в конфиге есть, переменные выводятся, пробовал даже просто захардкодить сразу после if(order_info) что бы проверить
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_reward SET customer_id = '" . (int)$order_info['customer_id'] . "', order_id = '" . (int)$order_id . "', description = '" . $this->db->escape($this->language->get('text_firstorder')) . "', points = '" . $discount_pcnt . "', date_added = NOW()");
то же самое, ничего не происходит, кто знает что тут может быть, прошу подсказать, куда смотреть хотя бы?