Перейти к содержанию
Официальный форум поддержки Simpla

Сортировка по цене v. 1.4 [решено]


Рекомендуемые сообщения

Нашел решение сортировки по цене Simpla v. 1.4 Собственно научился сортировать по любому полю доступному в таблице price, да и в любой другой таблице. Один раз делаете - Всю жизнь работает)

Все делаем строго по этапам
1. делаем дамп таблицы products
2. удаляем таблицу products
3. выполняем скрипт

CREATE TABLE IF NOT EXISTS `products` (
 `product_id` int(11) NOT NULL AUTO_INCREMENT,
 `url` varchar(255) NOT NULL DEFAULT '',
 `category_id` int(11) NOT NULL DEFAULT '0',
 `brand_id` int(11) DEFAULT NULL,
 `model` varchar(500) NOT NULL,
 `description` text NOT NULL,
 `body` longtext NOT NULL,
 `enabled` tinyint(1) NOT NULL DEFAULT '1',
 `hit` tinyint(1) NOT NULL DEFAULT '0',
 `order_num` int(11) NOT NULL DEFAULT '0',
 `small_image` varchar(255) NOT NULL DEFAULT '',
 `large_image` varchar(255) NOT NULL DEFAULT '',
 `download` varchar(255) NOT NULL,
 `meta_title` varchar(500) NOT NULL,
 `meta_keywords` varchar(500) NOT NULL,
 `meta_description` varchar(500) NOT NULL,
 `created` datetime NOT NULL,
 `modified` datetime NOT NULL,
`price` float(8,2) NOT NULL,
 PRIMARY KEY (`product_id`),
 KEY `url` (`url`),
 KEY `category_id` (`category_id`),
 KEY `brand_id` (`brand_id`),
 KEY `model` (`model`(333)),
 KEY `hit` (`hit`),
 KEY `order_num` (`order_num`),
 KEY `id_index` (`category_id`,`order_num`),
 KEY `date_edit` (`modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


4. импортируем наш дамп таблицы products
5. идем на хостинг и находим файл admin/Import.admin.php и дописываем в самый конец файла сразу после куска
///////////////////////////
$this->process_product($values);

$current_time = microtime(true);
$time_elapsed = $current_time - $start_time;
}
fclose($handle);
}
//////////////////////////

Следующие строчки:

$query = "update products set products.price=(select products_variants.price from products_variants where products_variants.product_id=products.product_id)";$this->db->query($query);

Сохраняем.... Заливаем на хостинг.
6. далее в корне открываем файл Storefront.class.php
и заменяем запрос в функции
function get_products($ids = null, $categories = null, $brand_id = null, $start_item=null, $filter=null, $hit=null)
с
$query = "SELECT
products.product_id, products.url, products.category_id, products.brand_id, products.model, products.description, products.body, products.hit, products.order_num, products.small_image, products.large_image, DATE_FORMAT(products.created, '%Y-%m-%d') as created, DATE_FORMAT(products.modified, '%Y-%m-%d') as modified, products.enabled,
brands.name as brand, brands.url as brand_url,
categories.single_name as category, categories.url as category_url, categories.image as category_image
FROM products LEFT JOIN categories ON categories.category_id = products.category_id
LEFT JOIN brands ON products.brand_id = brands.brand_id
LEFT JOIN products_categories ON products.product_id = products_categories.product_id
WHERE
categories.enabled=1
and products.enabled=1
$id_filter $category_filter $brand_filter $properties_filter $hit_filter
GROUP BY products.product_id
ORDER BY products.order_num desc
$limit";

на
$query = "SELECT
products.product_id, products.url, products.category_id, products.brand_id, products.model, products.description, products.body, products.hit, products.order_num, products.small_image, products.large_image, DATE_FORMAT(products.created, '%Y-%m-%d') as created, DATE_FORMAT(products.modified, '%Y-%m-%d') as modified, products.enabled,
brands.name as brand, brands.url as brand_url,
categories.single_name as category, categories.url as category_url, categories.image as category_image
FROM products LEFT JOIN categories ON categories.category_id = products.category_id
LEFT JOIN brands ON products.brand_id = brands.brand_id
LEFT JOIN products_categories ON products.product_id = products_categories.product_id
WHERE
categories.enabled=1
and products.enabled=1
$id_filter $category_filter $brand_filter $properties_filter $hit_filter
GROUP BY products.product_id
ORDER BY products.price asc
$limit";
7. Пруф ит!
P.S. Можно сделать сортировку прямо с сайта по цене, имени, популярности, количеству на складе....
P.P.S. ICQ: 455-265-0, mail: knownwhat@gmail.com
Ссылка на сообщение
Поделиться на другие сайты

Спасибо! Хотелось бы больше комментариев для начинающих в php, как использовать другие сортировки, как выводить инструменты сортировки..

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...
  • 4 недели спустя...

Скажите, а скрипт выполнять в таблице и в каком именно месте?
Может глупый вопрос, я не особо шарю но хочу сам разобраться. Наш программер совсем скопытился.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 4 года спустя...

Не охота поднимать такую стародавнюю тему, однако у меня нет выбора. Сделал всё, как описано в первом посте, но в поле products.price ничего не попадает. Как заставить симплу внести все записи из product_variants.price в products.price? Тот участок кода, добавленный в Import.admin.php остается не задействованным. И да, заметил что некоторые файлы админки тоже нужно править, ибо в админке так и отображается информация из старого поля price.

Ссылка на сообщение
Поделиться на другие сайты

Не понимаю людей которые тормозят в развитии и стоят на месте.

Тема пятилетней давности, уже давно есть новая версия симплы которая в разы лучше первой.

Зачем использовать давно забытый дедовский мопед когда можно летать на крылатом мотоцикле?

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...