0 Пользователей и 1 Гость просматривают эту тему.
  • 20 Ответов
  • 2515 Просмотров
*

rudoy24

  • Захожу иногда
  • 57
  • 1 / 0
Здравствуйте...
Возможно ли реализовать отображение списка товаров категории таким образом, что бы товары с меткой (метка у которой id=3) шли первыми в списке товаров категории?

Насколько я понимаю необходимо править код файла "components/com_jshopping/templates/назване_шаблона/list_products/product.php", но какое условие там прописать не пойму!  !
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Шаблон тут не при чем... Надо делать правки в файле настроек.
\components\com_jshopping\lib\default_config.php
Ищите $config->sorting_products_field_select и там указаны списки для сортировки. Добавляете нужную, и в настройках магазина выбираете ее по умолчанию.
Если из моего поста не понятно, воспользуйтесь поиском на форуме по слову sorting_products_field_select
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Ищите $config->sorting_products_field_select и там указаны списки для сортировки.

а разве так получится сделать? ведь это не сортировка как таковая...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

rudoy24

  • Захожу иногда
  • 57
  • 1 / 0
Это не должна быть сортировка как таковая, это должно быть условие в выводе списка товаров категории, по условию какого товары с меткой (id=3) будут выводится первыми в списке а далее будут идти остальные товары.
Я так думаю что когда будет применятся сортировка к реализованному такому выводу, то товары с меткой все равно будут первыми.

Кстати модуль перед списком товаров тоже не вариант, так как во первых будет повтор товаров в модуле а потом в списке товаров, а во вторых делать для каждой категории свой модуль очень накладно и громоздко получится, да и вывод именно меток данной категории в категории тоже может быть проблемой!!

Как я думаю лучшим вариантом будет прописать условие в "list_products/product.php" по которому сначала выведется товары с меткой (id=3), а после будут идти товары!

А вообще суть такова и возможно я не в ту сторону смотрю, и кто-то подскажет лучше вариант:
Необходимо вывести  определенные товары первыми в списке категорий, но вот предустановленная сортировка не подходит, поту как из слов "не удобная и постоянно необходимо перестраивать", по этому лучшим вариантом подумал будет решение через отдельную метку, но как ее и только ее вывести первой в списке, ведь есть и другие метки и если просто делать сортировку то в начале выведутся товары со всеми метками, а необходимо что бы только (id=3), а дальше уже в зависимости от сортировки!
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
а разве так получится сделать? ведь это не сортировка как таковая...
Немного воображения и логики, и любая проблема становится решенной
Код: php
$config->sorting_products_field_select =   array(1 => 'name',           2=>'prod.product_price',        3=>'prod.product_date_added', 5=>'prod.average_rating', 6=>'prod.hits',         4=>'IF(prod.label_id = 3, \'prod.label_id\', \'pr_cat.product_ordering\'), pr_cat.product_ordering');
http://localhost/administrator/index.php?option=com_jshopping&controller=config&task=catprod
Выбираем Сортировка товаров - Предустановленная
Радуемся результату (Конечно если я всё правильно понял по задаче)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

rudoy24

  • Захожу иногда
  • 57
  • 1 / 0
 ^-^ Да спосоп подходит, правда недостатком есть то что необходимо менять сами файлы движка и при обновлении все слетит...
Еще как вариант нашел бесплатный плагин "Сортировка отсутствующих товаров в JoomShopping" - http://nevigen.com/ru/shop/addons/sortirovka-otsutstvuyushchikh-tovarov-v-joomshopping.html#description

может попробовать его доделать так чтобы товары с меткой выводились первыми... щас гляну и отпишусь...
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
при обновлении все слетит...

Создайте свой файл настоек "user_config.php" - в той же папке
и записывайте в него только то что изменили в default_config.php

все просто ;)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Немного воображения и логики, и любая проблема становится решенной

понятно :) не понял сразу, что нужно было именно так. да. для такой "сортировки" это вариант. только исходя из
Я так думаю что когда будет применятся сортировка к реализованному такому выводу, то товары с меткой все равно будут первыми.
надо видимо и для других полей добавить тоже самое
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

rudoy24

  • Захожу иногда
  • 57
  • 1 / 0
Подскажите как этот код (выводит отсутствующие товары последними):
Код
$adv_result .= ", IF(prod.product_quantity>0,1,0) as qflag"; 
$order_explode = explode(" ", $order_query);
$order_query = 'ORDER BY qflag DESC, '.$order_explode[3].' '.$order_explode[4];
переписать под вывод товаров с метками id=3 первыми в списке товаров категории?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
rudoy24, Вам же уже дали ответ, который решит Вашу проблему. И при обновлении магазина ничего не слетит.
Зачем изобретать велосипед?
Если же хотите свой велосипед, то я уже показал какой должен быть запрос в ORDER BY
Код: php
IF(prod.label_id = 3, \'prod.label_id\', \'pr_cat.product_ordering\')
Переведу на русский: Если метка имеет значение 3, то сортировать в первую очередь по этой метке (label_id), иначе по обычной сортировке (product_ordering)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

rudoy24

  • Захожу иногда
  • 57
  • 1 / 0
Да вопрос решен, спасибо Linfuby (+)
« Последнее редактирование: 17.12.2014, 13:24:21 от rudoy24 »
*

юрий 009

  • Захожу иногда
  • 341
  • 5 / 1
подскажите пожалуйста как сделать чтобы товар с меткою prod.label_id = 3 выводился останим
*

kevges

  • Новичок
  • 7
  • 1 / 0
Необходимо вывести товар первым у которого присвоено 2 метки(например label_id = 1 && label_id = 2). Может кто-то знает решение?
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
в базе жш нет возможности 2 меток.
выше давали решение уже. добавьте в услоиве "и"
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kevges

  • Новичок
  • 7
  • 1 / 0
в базе жш нет возможности 2 меток.
выше давали решение уже. добавьте в услоиве "и"
Спасибо за ответ!
Понимаю, на сайте установлен Addon Label multiselect с помощью которого присваивается больше одной метки.
"IF(prod.label_id = 1 && prod.label_id = 2" - так не сработает.
Если так: "IF(prod.label_id >= 1 && prod.label_id <= 2", то будет выводится по 2 меткам, но среди них есть товары и с одной меткой.

Думал в контроллере добавить условие:
Код
	if($label_id == 1 && $label_id == 2) {
 $order = $mainframe->getUserStateFromRequest( $context.'order', 'order', 4, 'int');}
Но тоже не вариант, не хватает знаний.

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
надо сначала посмотреть в каком виде в базе хранится несколько меток для товара. через запятую, или отдельной таблицей, или еще может как то.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
проще обратится к разрабтчику плагина мультилейбл за советом.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kevges

  • Новичок
  • 7
  • 1 / 0
надо сначала посмотреть в каком виде в базе хранится несколько меток для товара. через запятую, или отдельной таблицей, или еще может как то.

Нашел строку в коде Addon Label multiselect 1.0.2(бесплатная версия):
Код
  $query = "UPDATE `#__jshopping_products` SET `label_multiselect` = '".$db->escape($implodeArr)."' WHERE `product_id` = ".intval($product_id)." ";
Получается что в таблице `#__jshopping_products` в колонке `label_multiselect` хранятся значения.

Проверил, так и есть, перечислены через запятую.
*

kevges

  • Новичок
  • 7
  • 1 / 0
проще обратится к разрабтчику плагина мультилейбл за советом.
Возможно, но думаю что совет будет учи php)
Посмотрю код плагина, может и озарит.
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Прошу прощения за поднятие столь древней темы, но решил усложнить условие сортировки вывода, которое тут приведено выше, и ничего не получилось.
Суть вот в чём: хочется сначала выводить товары (самыми самыми первыми) с определённой меткой, после них все товары у которых есть другие метки, и только потом все остальные.

На данный момент строка в файле 'user_config.php' выглядит следующим образом:
Код
4=>'IF(prod.label_id = 5 OR prod.label_id = 1, \'prod.label_id\', \'pr_cat.product_ordering\'), pr_cat.product_ordering'
Чтобы вывести товары с другими метками я просто могу тут добавить ещё условия 'OR' по аналогии, и всё будет хорошо.
Но как товары с меткой id=7 вывести вообще впереди всех?

Пытался сделать так:
Код
4=>'IF(prod.label_id = 7, \'prod.label_id\', \'pr_cat.product_ordering\', IF(prod.label_id = 5 OR prod.label_id = 1, \'prod.label_id\', \'pr_cat.product_ordering\')), pr_cat.product_ordering'
но получаю ошибку: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' IF(prod.label_id = 5 OR prod.label_id = 1, 'prod.label_id', 'pr_cat.product_...' at line 4

Понимаю, что тут ошибка в синтаксисе, но не понимаю, как правильно выражение написать.
Знатоки, помогите пожалуйста  !!!???!!!
« Последнее редактирование: 13.03.2023, 23:02:29 от goga_pgasovav »
*

goga_pgasovav

  • Захожу иногда
  • 385
  • 4 / 0
  • Внимательный джумловод
Уже какие только варианты не испробовал. Всегда ошибка. Не нравится двойное условие, а как иначе это представить не понимаю  *ОХ-Х-Х*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 1
Просмотров: 347
Последний ответ 10.01.2024, 19:54:00
от sergeytolkachyov
Фильтр товаров для JoomShopping 5

Автор Lemonez

Ответов: 5
Просмотров: 476
Последний ответ 04.01.2024, 22:06:03
от Biss
Вывод номера телефона в списке заказов

Автор sifoz

Ответов: 8
Просмотров: 1821
Последний ответ 25.11.2023, 00:58:54
от nevigen
Последние просмотренные товары JoomShopping

Автор Sulpher

Ответов: 29
Просмотров: 8133
Последний ответ 13.10.2023, 22:05:16
от sergeytolkachyov
Вывести название категории в списке товаров

Автор ataman

Ответов: 9
Просмотров: 3390
Последний ответ 15.09.2023, 20:31:11
от Alex_gs