Сортировка во Views

Аватар пользователя buldozer_kpi buldozer_kpi 9 апреля 2013 в 23:04

Доброго времени суток! Есть вопрос.
Существует нода с полем название товара. Здесь прописываются модели оборудования. Например tovar 1, tovar 2, tovar 12 и т.д
Так вот, при сортировке во вьюхе по этому полю выводится следующим образом:
tovar 1
tovar 12
tovar 13
tovar 2
tovar 3

а нужно:
tovar 1
tovar 2
tovar 3
tovar 12
tovar 13

Как это реализовать?
Заранее спасибо.

0 Thanks

Комментарии

Аватар пользователя ilyin.eugene ilyin.eugene 10 апреля 2013 в 7:32

В случае с полем "название" никак. Попробуйте сортировать по другому полю например ID.

Аватар пользователя roman-yrv roman-yrv 11 апреля 2013 в 16:31

Можно сделать так.
Завести дополнительное поле, в которое при добавлении/редактировании товара вводить (или выделять из строкового названия) вот этот номер товара.
Если же в номере товара будут не только цифры, но еще и знаки подчеркивания, буквы и т.д., то приводить номер к какому-нибудь виду, чтобы можно было сделать сортировку. Также, если есть номера "0", "10" и "1000", то хранить не "0", а "0000" и не "10", а "0010", чтобы при сортировке они были раньше, чем "1000".
Ну а потом просто делать сортировку по этому полю во Views.

Аватар пользователя roman-yrv roman-yrv 11 апреля 2013 в 16:42

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

Насчет хэндлеров - не знаю, пока не дорос до их написания :)

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 11 апреля 2013 в 16:39
"ilyin.eugene" wrote:

В случае с полем "название" никак. Попробуйте сортировать по другому полю например ID.

Можно заальтерить вьюсовый запрос, оттуда вычленить регуляркой номер из тайтла и по нему отсортировать, но это накладно по ресурсам

Аватар пользователя ilyin.eugene ilyin.eugene 11 апреля 2013 в 16:43
"RxB" wrote:

Можно заальтерить вьюсовый запрос, оттуда вычленить регуляркой номер из тайтла и по нему отсортировать, но это накладно по ресурсам

Ужасное решение. Советую написать хендлер для сортировки.

Аватар пользователя buldozer_kpi buldozer_kpi 11 апреля 2013 в 21:23
"RxB" wrote:

Сортировка по заголовку ужасна первоначальна

Начнем с того, что не по заголовку, а по названию товара, которым выступает специальное поле. Ничего плохого в сортировке по названию не вижу.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 11 апреля 2013 в 21:46
"buldozer_kpi" wrote:

Начнем с того, что не по заголовку, а по названию товара, которым выступает специальное поле. Ничего плохого в сортировке по названию не вижу.

Начнём с того, что у вас сортировка по текстовой строке из которой вы пытаетесь сделать числовую