Сбивается сортировка опций при дублировании товара. Почему? Хотя номер в поле сортировки остается тем же
Сбивается сортировка опций при дублировании товара. Почему? Хотя номер в поле сортировки остается тем же
В админке по умолчанию размещаемые товары (опции), сортируются по ID, под которым они попадают в систему и записываются в БД, осмотрите вашу левую колонку, там идёт строгая нумерация по ID. Так что, в этом плане, сортировка как раз не сбита. С заказами точно так же, каждому при оформлению присваивается № в виде ID, который никогда не повторяется и с каждым новым заказом возрастает.
Поле "порядок сортировки", влияет на последовательность при показе в пользовательской части, а не на порядок последовательности записи в системе. И эта сортировка показа в пользовательской части работает без сбоев.
Интернет-магазин на Viart Shop, это не так сложно и страшно, как кажется...
Значит ID формируется не в правильно последовательности точнее не в той в которой я записываю
В админке, как я понимаю, не смотря на то, что ID присваивается в порядке последовательности по возрастанию, т.е. 1;2;3;4 и т.п., сам вывод может быть не по порядку ID, а по... алфавитному порядку, если в поле значения имеются буквы, а не просто цифры. К примеру, если будут добавлены последовательно опции 333;444;а333;а444, то не смотря на то, что последние две опции были добавлены последними, в админке, они будут вверху списка из-за "а" в из названии (значении).
Интернет-магазин на Viart Shop, это не так сложно и страшно, как кажется...
Я тоже столкнулся с этой проблемой
Добавляю значения опции и присваиваю им порядок сортировки. На странице товара все значения отображаются в заданной мною последовательности. А в админке (на странице редактирования опции) все значения располагаются не по возрастанию/убыванию ID, не по порядку создания и не в соответствии с присвоенным мною порядком сортировки. И даже не по алфавиту, а непонятно как.
Можно ли это как-нибудь исправить?
skrin-optcii.jpg
P.S. Почему-то при добавлении к посту картинки, она уменьшается до ничтожных размеров...
Судя по тому, что этот вопрос поднимается всего лишь второй раз - у всех всё хорошо. Или порядок значений опции выводится в админке правильно, или устраивает такая ситуация,или никто опциями не пользуется.
А такая ситуация может случиться из-за правки других (не закодированных) файлов?
Чтобы в админке опции сортировались по значению - делаем так:
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 25 сообщение(ий)):У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
Чтобы в админке опции сортировались по полю "Порядок сортировки" - делаем так:
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 25 сообщение(ий)):У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
Последний раз редактировалось Aleksey; 30.12.2011 в 14:01.
Спасибо.
А какой из этих способов сортирует по ID? Дело в том, что в версии 3.6 у опции имеется семь значений (полей/столбцов):
1.ID 2.Описание и код 3.Ценовая матрица 4.В наличии & Вес 5.Загружаемые файлы 6.Опции 7.Удалить
oldmanager, видимо, такой:
PHP код:
$ipv->parameters["property_id"][USE_IN_ORDER] = true;
Спасибо, Aleksey.
Не смог сразу применить Ваши советы, поэтому рапортую только теперь:
При вставке этого куска кода посленичего видимого не произошло.PHP код:
$ipv->change_property("property_id", USE_IN_INSERT, true);
А вот после применения этого совета:
значения опции отсортировались таки по ID!
Возможно, надо было так:
Ну, раз получилось по другому - хорошо!PHP код:
$ipv->change_property("property_id", USE_IN_ORDER, true);
Что-то я поспешил радоваться
Ваш вариант сортировки по значению сортирует действительно по значению, а не по ID. Т. е. если в значении есть числа 8, 9, 10, 11, то отсортирует как 10, 11, 8, 9.
Последний предложенный Вами вариант тоже ни каких видимых изменений не принёс (ни при добавлении строки, ни при замене).
Решил остановиться на варианте сортировки по полю "Порядок сортировки". Может оно и к лучшему.
Ещё раз спасибо за участие
Переходите на более современную версию.
Возникла новая проблема с сортировкой На сей раз на странице вывода результатов сравнения товаров.
Для однотипных товаров создана спецификация с одинаковыми характеристиками. У каждого товара эти характеристики заполнены своими значениями. На детальной странице во вкладке спецификация все строки (характеристика + значение) отображаются так, как и было задумано. Но на странице сравнения этих товаров возникает полная путаница строк. Причём без какой-либо видимой логики.
Подозреваю, что за порядок вывода строк (характеристик?, значений?) на страницу сравнения отвечает какой-то кусок кода (аналогично описанному выше) в каком-то файле.
Можете-ли вы что-нибудь посоветовать?
сортировка у Вас происходит не по имени. Это бочек как и в сортировке характеристик, попробуйте применить изложенную мной поправку сортировки характеристик к опциям
Все наши проблемы начинаются внутри нас
Провёл аналогии с Вашим примером и в файле block_products_compare.php нашёл два куска кода:
иPHP код:
// get all properties
$sql = " SELECT ip.property_name, ip.property_description, ipv.property_value ";
$sql .= " FROM (" . $table_prefix . "items_properties ip ";
$sql .= " LEFT JOIN " . $table_prefix . "items_properties_values ipv ON ip.property_id=ipv.property_id) ";
$sql .= " WHERE (ip.item_id=" . intval($item_id) . " OR ip.item_type_id=" . $db->tosql($item_type_id, INTEGER) . ") ";
$sql .= " ORDER BY ip.property_order, ip.property_id ";
$db->query($sql);
while ($db->next_record()) {
$group_id = "options";
$group_name = PROD_OPTIONS_MSG;
$feature_name = get_translation($db->f("property_name"));
$property_value = get_translation($db->f("property_value"));
$property_description = get_translation($db->f("property_description"));
$feature_value = strlen($property_value) ? $property_value : $property_description;
$feature_groups[$group_id] = $group_name;
if (isset($features[$group_id][$feature_name][$j])) {
$features[$group_id][$feature_name][$j] .= "; " . $feature_value;
} else {
$features[$group_id][$feature_name][$j] = $feature_value;
}
}
Подскажите, куда и что вписывать, чтобы на странице сравнения товаров характеристики сортировались по столбцу... эм-м... в админке над ним проставлена решётка "#"PHP код:
// get features list
$sql = " SELECT fg.group_id,fg.group_name,f.feature_name,f.feature_value ";
$sql .= " FROM " . $table_prefix . "features f, " . $table_prefix . "features_groups fg ";
$sql .= " WHERE f.group_id=fg.group_id ";
$sql .= " AND f.item_id=" . intval($item_id);
$sql .= " ORDER BY fg.group_order ";
$db->query($sql);
while ($db->next_record()) {
$group_id = $db->f("group_id");
$group_name = get_translation($db->f("group_name"));
$feature_name = get_translation($db->f("feature_name"));
$feature_value = get_translation($db->f("feature_value"));
$feature_groups[$group_id] = $group_name;
if (isset($features[$group_id][$feature_name][$j])) {
$features[$group_id][$feature_name][$j] .= "; " . $feature_value;
} else {
$features[$group_id][$feature_name][$j] = $feature_value;
}
}
}
resheto.jpg
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)
Социальные закладки