Jump to content

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


Recommended Posts

Нашел решение сортировки по цене 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
Link to post
Share on other sites
  • 1 month later...
  • 4 weeks later...
  • 2 weeks later...
  • 4 years later...

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...