cotonti.com : Сортировка в движке https://www.cotonti.com Последние сообщения в теме Cotonti en Thu, 20 Nov 2025 16:35:22 -0000 Oughtem В админке в структуре возник вопрос с сортировкой. Структура почему-то стала сортироваться по полю "Код", а не полю "Путь", хотя вывод на сайте правильный - сортирует по "коду". Вот скрин http://www.cotonti.com/datas/users/snimok_121.png Что сделать, чтоб сортировало по "Пути"?

Добавлено 1 месяца спустя:

#34458 Macik:

Я против плодить сущности. Тем более сейчас есть «рабочий вариант» с нулями.

вариант то как раз и не рабочий на 100%. Если мы имеем структуру до третьего уровня 01.01.01 то да, сортировка ведёт себя правильно. Если  01.01.01.01 то получается то, что я в скрине приложил. Не все сайты, конечно, имеют необходимость в такой структуре, но всё-таки, вариант не 100%-ный.

]]>
сб, 29 июн 2013 15:24:08 -0000
Macik #34462 Moool13:

Т.е. должны успеть к определенному сроку? Разве Кот не независимый продукт?

Я о том, что надо взвешивать востребованность той или иной фичи, в противовес латанию дыр и стратегическому развитию. :)

]]>
вт, 29 мая 2012 11:55:47 -0000
Moool13

К тому же, учитывайте, что у разработчиков ограничено время. А в трекере целый лист багов еще висит.

Т.е. должны успеть к определенному сроку? Разве Кот не независимый продукт?

]]>
вт, 29 мая 2012 11:34:32 -0000
Macik Под массовое добавление категорий можно написать плагин. Вопрос в каком формате входные данные с описанием категорий/подкатегорий? Или если подразумевается не испорт файла со списком, то как вы представляете себе интерфейс для массового добавления? Хотелосб бы услышать подробное описание от тех кто с проблемой сталкивался.

]]>
вт, 29 мая 2012 11:18:45 -0000
Wadik Про то, что можно использовать в пути слова а не цифры даже и не знал. Попробую, оценю.

Если считаете, что фича котонти в массовом изменении и легкости изменения структуры, тогда стоит подумать о массовом добавлении категорий. Вы попробуйте добавить 200 категорий через существующий интерфейс - это сводится в ад. 

Мое мнение - изменить формат добавления категорий. отображение всех устраивает, недопонимание возникает из-за того что все по разному добавляют категории. Если проработать юзабилити добавления категорий, то можно решить суть данного обсуждения.

]]>
вт, 29 мая 2012 09:17:29 -0000
Macik Я против плодить сущности. Тем более сейчас есть «рабочий вариант» с нулями. К тому же, учитывайте, что у разработчиков ограничено время. А в трекере целый лист багов еще висит. 

 

Добавлено 46 секунд спустя:

ps. Но активность обсуждения данного вопроса меня радует. :)

]]>
вт, 29 мая 2012 08:40:07 -0000
Sergeich Не трогайте то, что и так работает. Создание структуры в Котонти - это одна из фич. 

Да, на первый взгляд, новичку довольно непривычны правила построения дерева категорий (сам обжигался), но немного им попользовавшись понимаешь все плюсы существующей системы. Всё, что необходимо - наглядно расписать процесс создания ветвистых структур, ничего сложного в этом нет. А правило всего одно - думай на перспективу :). 

А для сортировок реально проще будет использовать или экстраполе или правильно составленную структуру.

]]>
вт, 29 мая 2012 07:38:31 -0000
Moool13

Да и переименовать ПУТЬ в ID

Смысл поменяется, не в лучшую сторону

]]>
пн, 28 мая 2012 19:50:29 -0000
Fox Так зачем все ломать лопатить переделывать. Может возможно сделать сортировку для путей категорий (общем) оставить как есть только немного доделать. Например кто хочет юзать алфавит кто числа пусть юзают одно или другое или все вместе как доступно сейчас. Но просто сделать сортировку по порядку, после 1 пусть будет 2 а не 11 или 12 ну и с буквами тожесамое.

Числа к числам и буквы к буквам. Да и переименовать ПУТЬ в ID а то что путь ассоциируется с ссылкой. Вроде все)))

]]>
пн, 28 мая 2012 19:32:48 -0000
McDuck Если делать конфиг, то для псевдоцелочисленной сортировки можно просто дополнять (при сохранении) введенное число ведущими нулями (разрядность можно сделать тоже настраиваемой). Так не придется трогать БД

]]>
пн, 28 мая 2012 17:41:16 -0000
Moool13

Но тогда надо добавлять конфиг, чтобы админ мог выбирать, между алфавитными путями/сортировкой и целочисленными.

Только если так. Только мне не понятно, как целочисленной сортировкой путей выбирать родительские категории?

]]>
пн, 28 мая 2012 16:33:45 -0000
Trustmaster #34442 Yusupov:

А что если вообще скрыть от пользователя поле указания пути, а вместо него сделать селектбокс для выбора родительской категории?

Это ранее предлагалось неоднократно. Привет, другие CMS. Тогда теряем одну из важных фишек движка, позволяющих быстро менять структуру сайта редактированием путей (а не бесконечной чередой действий "открыть категорию, изменить родителя, сохранить, открыть категорию, изменить родителя..."). И ещё работа со структурой с точки зрения кода станет не работой с простым списком, а обходом дерева.

Добавлено 2 минуты спустя:

Целочисленную сортировку для путей сделать можно. Ещё не знаю, чего это будет стоить с точки зрения трудозатрат и производительность, но теоретически такая возможность есть. Но тогда надо добавлять конфиг, чтобы админ мог выбирать, между алфавитными путями/сортировкой и целочисленными.

]]>
пн, 28 мая 2012 15:35:44 -0000
Moool13

А что если вообще скрыть от пользователя поле указания пути, а вместо него сделать селектбокс для выбора родительской категории?

Против!

]]>
пн, 28 мая 2012 14:19:25 -0000
Yusupov Сейчас не помню точно в деталях, но у меня вышло как-то исправить сортировку путем введения доп поля для сортировки и по ней уже сортировать. Доп. поле формируется из пути, то есть убираем все точки и прибавлением нули справа определенное количество, в зависимости от уровня вложенности. Дальше сортировка по данному полю в функции генерации структуры. 

Возможно это не продуктивно, но зато решает эту проблему не меняя основной принцип указания пути категории.

Хотя, да, если пути указанны в числах...

 

А что если вообще скрыть от пользователя поле указания пути, а вместо него сделать селектбокс для выбора родительской категории?

]]>
пн, 28 мая 2012 13:54:23 -0000
Moool13

Все готовы?

Нет. McDuck правильно сказал. Лучше 1.1.1.1

]]>
пн, 28 мая 2012 12:57:34 -0000
Trustmaster Я же сказал, структура - разговор отдельный. Oughtem говорит о том, что надо вообще везде сортировку менять.

В структуре если хотите целочисленную сортировку, то давайте сначала откажемся от поддержки всего кроме чисел в путях. Все готовы?

]]>
пн, 28 мая 2012 12:33:08 -0000
Moool13

Если вы хотите сделать, например, поле "Расстояние до пляжа" со значениями "рядом, 50м, 100м, 150м, 200м, 500м, 1км, 2км, 3км", а затем сделать аккуратную сортировку по нему, то правильный выход - это хранить данные без единиц измерения. Скажем, "0, 50, 100, 150, 200, 500, 1000, 2000, 3000", а буковку "м" выводить в шаблоне. Пользователям будет удобнее, если вы сделаете небольшой плагин, который будет на лету переводить м в км и обратно (при вводе или выводе). Но не просите сделать это базу данных.

Причем тут юзеры и структура?

]]>
пн, 28 мая 2012 12:21:35 -0000
Trustmaster Не путайте божий дар с яичницей.

Во-первых, пути категорий - это отдельно взятый случай, живущий по своим правилам. Как заметил esclkm, в них допускаются не только числа, но и буквы. Как заметил McDuck, численная сортировка для них сильно затруднена.

Во-вторых, не существует "универсальное решение". Иначе создатели СУБД давно бы сделали один единственный тип данных вместо всех этих VARCHAR, INT, FLOAT и т.д. Вы просите написать некую волшебную функцию, которая будет на лету распознавать тип данных (а они ещё и разные, оказывается, например "0, 3.75, капуста, 4, 6км, морковь, 300, 999.999") и упорядочивать их заново. Но имейте в виду, что даже если вы просто немного "ошиблись" и храните целочисленные данные в текстовом поле, то MySQL из-за этого тратит на выборки и сортировку по этому полю ощутимо больше времени, потому что операция сравнения строк медленнее, чем сравнения чисел.

Если вы хотите сделать, например, поле "Расстояние до пляжа" со значениями "рядом, 50м, 100м, 150м, 200м, 500м, 1км, 2км, 3км", а затем сделать аккуратную сортировку по нему, то правильный выход - это хранить данные без единиц измерения. Скажем, "0, 50, 100, 150, 200, 500, 1000, 2000, 3000", а буковку "м" выводить в шаблоне. Пользователям будет удобнее, если вы сделаете небольшой плагин, который будет на лету переводить м в км и обратно (при вводе или выводе). Но не просите сделать это базу данных.

]]>
пн, 28 мая 2012 06:48:52 -0000
Oughtem #34427 Trustmaster:
Для численной сортировки создавайте числовые поля. Их MySQL будет сортировать как числа. 

это не универсальное решение. Что делать с полями смешанного типа?

]]>
вс, 27 мая 2012 22:17:33 -0000
McDuck Численная сортировка в путях структуры невозможна для числа уровней больше двух, поскольку не существует чисел вида 1.2.3.4

Меня больше озадачивает, что значения пути не проверяются на уникальность

]]>
вс, 27 мая 2012 22:00:25 -0000
esclkm ребят вы приводите коды ска строки: 100м 200м и тд

я у себя на сайте юзаю в качестве путей только то что мне понятно anat.golov, hir.uro.mkb и тд

но вы хотите лишить меня этого? а смысл? ди а прямо со стратью хотите числа - вопрос зачем?

]]>
вс, 27 мая 2012 21:53:41 -0000
Fox Trustmaster: А исправить это можно чтоб пути категорий шли попорядку 1, 2, 3, а не 1, 11, 2, 21, и т д???

]]>
вс, 27 мая 2012 21:31:24 -0000
Trustmaster #34424 Oughtem:

Тем, что вопрос касается не только структуры сайта. Любой плагин, любой функцонал, который использует сортировку выводит не правильно. А писать, допустим, в характеристиках товарав: 050м (вместо 50м), 100м, 200м чтобы сортировало правильно - это действительно шаманство.

Для численной сортировки создавайте числовые поля. Их MySQL будет сортировать как числа. Сортировать выборку из БД на стороне PHP - вот это было бы шаманство.

 

]]>
вс, 27 мая 2012 21:10:39 -0000
Moool13

А писать, допустим, в характеристиках товарав: 050м (вместо 50м), 100м, 200м чтобы сортировало правильно - это действительно шаманство.

Вот на счет этого - соглашусь!

]]>
вс, 27 мая 2012 18:59:25 -0000
Oughtem #34421 Dayver:

Чем вариант с 01,02,03,...,09,10.11,... не устраивает?

Тем, что вопрос касается не только структуры сайта. Любой плагин, любой функцонал, который использует сортировку выводит не правильно. А писать, допустим, в характеристиках товарав: 050м (вместо 50м), 100м, 200м чтобы сортировало правильно - это действительно шаманство.

 

]]>
вс, 27 мая 2012 18:42:02 -0000
Moool13

на неохроме поднимался этот вопрос

Здесь этот вопрос тоже поднимался

]]>
вс, 27 мая 2012 14:42:30 -0000
Wadik #34421 Dayver:

Чем вариант с 01,02,03,...,09,10.11,... не устраивает?

Это шаманство. Если структура очень ветвистая и большая, то нужно додумывать 01 или 001 или 0001. 

]]>
вс, 27 мая 2012 12:45:48 -0000
Dayver Чем вариант с 01,02,03,...,09,10.11,... не устраивает?

]]>
вс, 27 мая 2012 12:36:05 -0000
Wadik Согласен! Всегда напрягало это

]]>
вс, 27 мая 2012 12:28:55 -0000
Oughtem Ещё со времён седа движок сортирует массив цифр в следующем порядке:

1,11,12,13,2,21,22,3,31,32

на неохроме поднимался этот вопрос, но поправлено не было. Есть этому какое-то лечение? Если нет, то предлагаю внести в список задач для новой версии.

]]>
вс, 27 мая 2012 12:20:56 -0000