UMIhelp

Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: niakriss от 03 Октября 2013, 13:20:44

Название: Сортировка объектов каталога вадминке
Отправлено: niakriss от 03 Октября 2013, 13:20:44
Здравствуйте, натолкните пожалуйста на мысль. А то вообще никаких идей((
Необходимо отсортировать вывод объектов каталога по определенному полю. При том что объекты с разными типами данных. И в каждом типе данных свое поле по которому их надо сортировать в каталоге. В каком классе хотябы эта сортировка идет?
Заранее благодарна.
Название: Re:Сортировка объектов каталога вадминке
Отправлено: admin от 04 Октября 2013, 18:15:55
если интересует механизм сортировки, то его код в файле /classes/system/utils/pagenum/pagenum.php (функция generateOrderBy) вызывается из файл /classes/modules/system.php в функции order_by.

если интересно как сделать разные сортировки, то тут важно понимать как она в umi работает.

при выводе товаров система пытается подхватит параметры из адресной строки вида order_filter[имя_поля]=направление_сортировки.
Поэтому ваша задача делиться на 2 части, передать в адресную строку соответствующий параметр и начиться выводить соответствующую ссылку (или форму) которая передастся в адресную строку параметр сортировки не поломав уже имеющиеся там параметры (фильтры и другие сортировки).

В umi, макросе system order_by(), проблема с тем, что система сама определяет доминирующий тип данных и если вы на странице корневого каталога (который содержит разделы с товарами разных типов) попытаетесь вывести сортировки полей из разных типов товаров, то какие-то не сработают, так как при выводе сортировки система определяет есть ли такое поле в доминирующем типе данных.

Мне обычно хватает модифицированного umi решения, которое я дописывал под свои нужды и которое выложено в статье  Создание двухсторонней сортировки order_by для xslt шаблонов (http://umihelp.ru/articles/custom_order_by-for_xslt/)
Название: Re:Сортировка объектов каталога вадминке
Отправлено: niakriss от 07 Октября 2013, 09:51:28
Это наверное чуть не то... но посмотрю generateOrderBy.. возможно что-то возьму для  себя...
мне нужно в самой админке чтобы объекты сортировались по нужным полям.
Название: Re:Сортировка объектов каталога вадминке
Отправлено: niakriss от 07 Октября 2013, 11:53:45
Вот еще вопрос возник... можно ли как то объеденить выборки?
Название: Re:Сортировка объектов каталога вадминке
Отправлено: admin от 07 Октября 2013, 14:00:09
если мы говорим про админку, то тогда вопрос у вас свой модуль или вы хотите сделать сортировку в уже существующем в umi модуле, например в каталоге?

P.S. Если можно опишите развернуто что именно вам требуется сделать, чтобы было проще понимать какая у вас ситуация
Название: Re:Сортировка объектов каталога вадминке
Отправлено: niakriss от 08 Октября 2013, 14:25:15
да.. я хочу в уже существующем модуле сделать сортировку...
Есть модуль каталог. В нем созданы 3 каталога. в каждом каталоге свои типы объектов каталогов.
в первом каталоге - объекты первого типа. Сортируются по полю Дата регистарции.
во втором каталоге - объекты второго типа. Сортируются по полю Дата принятия.
в третьем каталоге - объекты третьего типа. Их вообще можно не сортировать.
И в каждом этом типе свои поля. Т.е. у второго типа нет поля Дата регистрации. У него вместо него дата принятия. А в третьем вообще таких полей нет.
Название: Re:Сортировка объектов каталога вадминке
Отправлено: admin от 08 Октября 2013, 17:05:42
посмотрите в firebug при раскрытии разделов, там будет видно что подразделы раскрываются ajax запросом, который умеет принимать кучу параметров, в том числе и сортировки.

Вопрос как этот запрос редактировать, пока не ясен.

Js переписывать не очень хочется она перезатрется при обновлении.

Можно подумать в сторону кастомизации данного модуля, добавив него доп. вкладок. Каждая вкладка будет для своего раздела и там на уровне php при формировании xml для данной вкладки можно поменять сортировку. Правда и тут, скорее всего, не обойтись без редактирования системных файлов модуля.

Можно подумать о написании своего модуля, но уж сильно много действий для вывода сортировки.
Название: Re:Сортировка объектов каталога вадминке
Отправлено: niakriss от 10 Октября 2013, 16:02:50
оказалось все как-то просто)))
написала функцияю:
static function dateRegistration(selector $sel) {
         $sel->types('object-type')->id(137);
         $sel->types('object-type')->id(138);
         $sel->order('data_registracii')->desc();
      }

и вставила ее выполняться в public function tree():
после применения фильтров к выборке
self::dateRegistration($sel);
Название: Re:Сортировка объектов каталога вадминке
Отправлено: admin от 10 Октября 2013, 17:10:29
Системные файлы правили? Не боитесь что перезатрутся ваши труды при очередном обновлении системы?
Название: Re:Сортировка объектов каталога вадминке
Отправлено: niakriss от 11 Октября 2013, 09:39:26
не.. я в custom_adm прописала...