Как выставить свойства на клиентской стороне, не в алфавитном порядке? Хотя по бы по правилу "Как добавлялись". Не говорю уже о возможности перемещать стрелочками, как бренды...
Как выставить свойства на клиентской стороне, не в алфавитном порядке? Хотя по бы по правилу "Как добавлялись". Не говорю уже о возможности перемещать стрелочками, как бренды...
Кстати, давно собираюсь задать этот же вопрос. Такая возможность очень нужна, а то получается что самые важные свойства стоят в конце, особенно это не удобно в фильтре, когда пользователь должен первым делом выбрать нужную характеристику, а это своство стоит последним.
Поддерживаю вопрос. Хотелось бы еще реализовать возможность объеденить свойства по блокам, к примеру:
Подключения:
юсб... да
ав.. да
Габариты:
Длинна ... 150 мм
Высота... 70 мм
Глубина... 20 мм
Раз уж такая тема, то хотелось би иметь возможность добавить свойство, а значения добавлять на лету, т.к. есть такие характеристики которые имеют разное значение у разных товаров и они уникальны, их разброс слишком большой. И получается что для некоторых свойств нужно создать по 50-100 значений, что не удобно. Например свойство длинна было удобно просто задать числовым полем, а саму длинну сразу задавать при добавлении товара, а не создавать список всех возможных длин коих может быть 100 шт.
Раскопал вот. В файле objects/Selector.php есть метод fetch_products на строке 781.
public function fetch_products ($category_url, $brand_url) {
Метод выполняется когда пользователь открыл на сайте страницу товаров категории. В этом методе на строке 995 есть такой код.
// берем упорядоченный по названию список свойств товаров (непустых, разрешенных и используемых в фильтре, а также в такой категории/бренде) $params = new stdClass; $params->sort = SORT_PROPERTIES_MODE_BY_NAME; $params->optioned = 1; $params->enabled = 1; $params->in_filter = 1; if (!empty($category)) $params->category_id = $category->category_id; // если это чисто страница бренда (то есть не категория -> бренд) if (!empty($brand) && empty($category)) $params->brand_id = $brand->brand_id; $this->db->get_properties($properties, $params); $this->db->fix_properties_records($properties);
Вот где читаются свойства которые потом выводятся в фильтре. Смотрите на строку 997.
$params->sort = SORT_PROPERTIES_MODE_BY_NAME;
Непонятно зачем свойства сортируются по имени. Наверное опечатка потому что я нашёл также в файле objects/Database.php на строке 375 есть ещё константы. Свойства то можно сортировать и по порядку "как есть" как расставлены.
// значения динамического параметра REQUEST_PARAM_NAME_SORT применительно к свойствам товаров define('SORT_PROPERTIES_MODE_AS_IS', 1); define('SORT_PROPERTIES_MODE_BY_NAME', SORT_PROPERTIES_MODE_AS_IS + 1);
Таким образом строку 997 правильно было писать всё же так.
$params->sort = SORT_PROPERTIES_MODE_AS_IS;
Но тут ещё надо разработчику на странице "товары > Свойства товаров" сделать jquery перемещение свойств мышкой как сейчас можно переставлять строки товаров в категориях когда список упорядочен "как расставлены". Иначе расставить свойства как мне нужно я могу конечно, с помощью phpmyadmin ручками пробив значения поля order_num таблицы properties. А это знаете ли неудобно учитывая, что phpmyadmin не приспособлен для последовательного изменения одного поля в таблице.